\hypertarget{ili9341_8h}{}\section{display/ili9341.h File Reference}
\label{ili9341_8h}\index{display/ili9341.\+h@{display/ili9341.\+h}}


ili9341 driver inspired by Adafruit ili9341 code All code in this file has been rewritten by Mike Gore  


{\ttfamily \#include \char`\"{}font.\+h\char`\"{}}\\*
{\ttfamily \#include \char`\"{}ili9341\+\_\+adafruit.\+h\char`\"{}}\\*
\subsection*{Data Structures}
\begin{DoxyCompactItemize}
\item 
struct \hyperlink{structwindow}{window}
\item 
struct \hyperlink{structp2__int16__t}{p2\+\_\+int16\+\_\+t}
\begin{DoxyCompactList}\small\item\em 2D display point -\/ display coordinates are int16 \end{DoxyCompactList}\item 
struct \hyperlink{structp3__int16__t}{p3\+\_\+int16\+\_\+t}
\begin{DoxyCompactList}\small\item\em 3D display point -\/ display coordinates are int16 \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Macros}
\begin{DoxyCompactItemize}
\item 
\#define \hyperlink{ili9341_8h_ad0fe97585b8891f5e4f2b9a6426330a4}{M\+E\+M\+S\+P\+A\+CE}
\item 
\#define \hyperlink{ili9341_8h_a399da2caab82ec1bb3d5a8fbc5306768}{W\+E\+A\+K\+\_\+\+A\+TR}~\hyperlink{user__task_8c_ade20ba3eb51f42d2b2deb917303c9a5e}{\+\_\+\+\_\+attribute\+\_\+\+\_\+}((weak))
\item 
\#define \hyperlink{ili9341_8h_a29fe4e7cb4d2be27f14f14431856391c}{F\+O\+N\+T\+\_\+\+V\+AR}~1
\item 
\#define \hyperlink{ili9341_8h_ab73b6f81ca48b2c6565e527a069914b3}{W\+R\+A\+P\+\_\+H}~2
\item 
\#define \hyperlink{ili9341_8h_ae48f725a443ce4210c725908799554af}{W\+R\+A\+P\+\_\+V}~4
\item 
\#define \hyperlink{ili9341_8h_a43c1de45dbd91827a260224c9c40221b}{W\+R\+AP}~(\hyperlink{ili9341_8h_ab73b6f81ca48b2c6565e527a069914b3}{W\+R\+A\+P\+\_\+H} $\vert$ \hyperlink{ili9341_8h_ae48f725a443ce4210c725908799554af}{W\+R\+A\+P\+\_\+V})
\item 
\#define \hyperlink{ili9341_8h_acd1bbb4cc5c0b122517e6dc6030ba441}{T\+F\+T\+\_\+W}~(\hyperlink{ili9341__adafruit_8h_ada20cd70880da7c400c4bc0bce18568f}{M\+A\+X\+\_\+\+T\+F\+T\+\_\+X}-\/\hyperlink{ili9341__adafruit_8h_a435c01f99d8b3103fb913fe285dd4792}{M\+I\+N\+\_\+\+T\+F\+T\+\_\+X}+1)
\item 
\#define \hyperlink{ili9341_8h_a27547bc8807c95c9e8e541e8cc92fece}{T\+F\+T\+\_\+H}~(\hyperlink{ili9341__adafruit_8h_af33f42d2e97ceb3d86b1f5ea80acb0ef}{M\+A\+X\+\_\+\+T\+F\+T\+\_\+Y}-\/\hyperlink{ili9341__adafruit_8h_a67e6b135b49133e3d6ce16e754383a64}{M\+I\+N\+\_\+\+T\+F\+T\+\_\+Y}+1)
\item 
\#define \hyperlink{ili9341_8h_a9d8bf18fe27c3b37d767477f93515780}{T\+F\+T\+\_\+\+X\+O\+FF}~(\hyperlink{ili9341__adafruit_8h_a435c01f99d8b3103fb913fe285dd4792}{M\+I\+N\+\_\+\+T\+F\+T\+\_\+X})
\item 
\#define \hyperlink{ili9341_8h_a9e86747a04cc5cca5f61042d742b7e40}{T\+F\+T\+\_\+\+Y\+O\+FF}~(\hyperlink{ili9341__adafruit_8h_a67e6b135b49133e3d6ce16e754383a64}{M\+I\+N\+\_\+\+T\+F\+T\+\_\+Y})
\item 
\#define \hyperlink{ili9341_8h_a6e05438fee5830ddbc6fa94a1770eefe}{tft\+\_\+\+R\+G\+Bto565}(r,  g,  b)~((\hyperlink{send_8c_a273cf69d639a59973b6019625df33e30}{uint16\+\_\+t}) (((r) \& 0xf8) $<$$<$ 8) $\vert$ (((g) \& 0xfc) $<$$<$ 3) $\vert$ (((b) \& 0xf8) $>$$>$3))
\begin{DoxyCompactList}\small\item\em Pass 8-\/bit (each) R,G,B, get back 16-\/bit packed color I\+L\+I9341 defaults to M\+S\+B/\+L\+SB data so we have to reverse it. \end{DoxyCompactList}\item 
\#define \hyperlink{ili9341_8h_aac9153aee4bdb92701df902e06a74eb3}{S\+W\+AP}(a,  b)~do \{ a $^\wedge$= b; b $^\wedge$= a; a $^\wedge$= b; \} while(0)
\item 
\#define \hyperlink{ili9341_8h_a996f7be338ccb40d1a2a5abc1ad61759}{A\+BS}(\hyperlink{ili9341_8c_a12ad102c2d1e7e119fdc040b0c922c7e}{x})~((\hyperlink{ili9341_8c_a12ad102c2d1e7e119fdc040b0c922c7e}{x})$<$0 ? -\/(\hyperlink{ili9341_8c_a12ad102c2d1e7e119fdc040b0c922c7e}{x}) \+: (\hyperlink{ili9341_8c_a12ad102c2d1e7e119fdc040b0c922c7e}{x}))
\end{DoxyCompactItemize}
\subsection*{Functions}
\begin{DoxyCompactItemize}
\item 
int \hyperlink{ili9341_8h_a787c79d0b0179b4b0f725422301d0e52}{font\+\_\+max} (void)
\item 
int \hyperlink{ili9341_8h_aec37c6383e20a1fef1cd4924060ed693}{font\+\_\+H} (int \hyperlink{bdffontutil_8h_a6d9c6f27190f0f04abf55678fe81080d}{font})
\begin{DoxyCompactList}\small\item\em Get font height used for line to line spacing. \end{DoxyCompactList}\item 
int \hyperlink{ili9341_8h_a647c0e54986f2520898707b8accd28f3}{font\+\_\+W} (int \hyperlink{bdffontutil_8h_a6d9c6f27190f0f04abf55678fe81080d}{font})
\begin{DoxyCompactList}\small\item\em Get font Width used for character to character spacing. \end{DoxyCompactList}\item 
int \hyperlink{ili9341_8h_acea4413f1d84d044b7d83a96bb0bcb79}{font\+\_\+attr} (\hyperlink{structwindow}{window} $\ast$win, int c, \hyperlink{struct__fontc}{\+\_\+fontc} $\ast$f)
\begin{DoxyCompactList}\small\item\em Get font attributes for a font. \end{DoxyCompactList}\item 
int16\+\_\+t \hyperlink{ili9341_8h_a0aa9c4ef2ff8fad916fe2f748c139c59}{sx} (float scale, int16\+\_\+t xoff, int16\+\_\+t \hyperlink{cordic2c_8c_a46b4b48ef8c0c01099eb3bcdde8aa8db}{X})
\item 
int16\+\_\+t \hyperlink{ili9341_8h_aade6a90a61d9ec9c45a7ad61180f9770}{sy} (float scale, int16\+\_\+t yoff, int16\+\_\+t \hyperlink{cordic2c_8c_ab746e677f466f17031e92ed577fc3c15}{Y})
\item 
void \hyperlink{ili9341_8h_a2f1b69d1fb9681eedc171a9b8402f3ca}{draw\+S\+VG} (\hyperlink{structwindow}{window} $\ast$win, int16\+\_\+t \hyperlink{ili9341_8c_a12ad102c2d1e7e119fdc040b0c922c7e}{x}, int16\+\_\+t \hyperlink{ili9341_8c_afe490938209e0b6b15224c05a01f0b40}{y}, int16\+\_\+t c, float scale, \hyperlink{send_8c_a273cf69d639a59973b6019625df33e30}{uint16\+\_\+t} color, int16\+\_\+t fill)
\item 
void \hyperlink{ili9341_8h_a944393583142b4a19593eec1a743b90e}{tft\+\_\+\+Cmd} (\hyperlink{send_8c_aba7bc1797add20fe3efdf37ced1182c5}{uint8\+\_\+t} cmd)
\begin{DoxyCompactList}\small\item\em Transmit 8 bit command. \end{DoxyCompactList}\item 
\hyperlink{send_8c_aba7bc1797add20fe3efdf37ced1182c5}{uint8\+\_\+t} \hyperlink{ili9341_8h_a2e9724741987970e9a1a866446bc3a2f}{tft\+\_\+\+Data} (\hyperlink{send_8c_aba7bc1797add20fe3efdf37ced1182c5}{uint8\+\_\+t} data)
\begin{DoxyCompactList}\small\item\em Transmit 8 bit data amd read 8bit data. \end{DoxyCompactList}\item 
void \hyperlink{ili9341_8h_a666fba3ffecff43f44c647bed2d012fe}{tft\+\_\+\+Cmd\+\_\+\+Data\+\_\+\+TX} (\hyperlink{send_8c_aba7bc1797add20fe3efdf37ced1182c5}{uint8\+\_\+t} cmd, \hyperlink{send_8c_aba7bc1797add20fe3efdf37ced1182c5}{uint8\+\_\+t} $\ast$data, int bytes)
\begin{DoxyCompactList}\small\item\em Transmit 8 bit command and optionally send data buffer. \end{DoxyCompactList}\item 
\hyperlink{earth2wireframe_8c_a32f2e37ee053cf2ce8ca28d1f74630e5}{int32\+\_\+t} \hyperlink{ili9341_8h_a4f8e68425197b38f3c9889b64b24f362}{tft\+\_\+abs\+\_\+window} (\hyperlink{structwindow}{window} $\ast$win, int16\+\_\+t \hyperlink{ili9341_8c_a12ad102c2d1e7e119fdc040b0c922c7e}{x}, int16\+\_\+t \hyperlink{ili9341_8c_afe490938209e0b6b15224c05a01f0b40}{y}, int16\+\_\+t w, int16\+\_\+t h)
\begin{DoxyCompactList}\small\item\em ============================================================= \end{DoxyCompactList}\item 
\hyperlink{earth2wireframe_8c_a32f2e37ee053cf2ce8ca28d1f74630e5}{int32\+\_\+t} \hyperlink{ili9341_8h_a26f9b4da8c98bb40a55da447874a849c}{tft\+\_\+rel\+\_\+window} (\hyperlink{structwindow}{window} $\ast$win, int16\+\_\+t \hyperlink{ili9341_8c_a12ad102c2d1e7e119fdc040b0c922c7e}{x}, int16\+\_\+t \hyperlink{ili9341_8c_afe490938209e0b6b15224c05a01f0b40}{y}, int16\+\_\+t w, int16\+\_\+t h)
\begin{DoxyCompactList}\small\item\em Set the ili9341 working window by relative position and size Note\+: Function clips x,y,w,y. \end{DoxyCompactList}\item 
\hyperlink{earth2wireframe_8c_ad0fe97585b8891f5e4f2b9a6426330a4}{M\+E\+M\+S\+P\+A\+CE} \hyperlink{send_8c_a435d1572bf3f880d55459d9805097f62}{uint32\+\_\+t} \hyperlink{ili9341_8h_a3cbe26ff6bbd20f42551fcfa12351142}{tft\+\_\+read\+Register} (\hyperlink{send_8c_aba7bc1797add20fe3efdf37ced1182c5}{uint8\+\_\+t} command, \hyperlink{send_8c_aba7bc1797add20fe3efdf37ced1182c5}{uint8\+\_\+t} parameter)
\begin{DoxyCompactList}\small\item\em ==================================== \end{DoxyCompactList}\item 
\hyperlink{earth2wireframe_8c_ad0fe97585b8891f5e4f2b9a6426330a4}{M\+E\+M\+S\+P\+A\+CE} \hyperlink{send_8c_a435d1572bf3f880d55459d9805097f62}{uint32\+\_\+t} \hyperlink{ili9341_8h_a79545feceb8eca011c3f424b36035010}{tft\+\_\+read\+Id} (void)
\begin{DoxyCompactList}\small\item\em Read I\+L\+I9341 device ID should be 9341 This does not work for really high S\+PI clock speeds Make sure that when called the clock speed in reduced. \end{DoxyCompactList}\item 
void \hyperlink{ili9341_8h_a9aedd26c42606ba58f2f0a483619f323}{tft\+\_\+bit\+\_\+blit} (\hyperlink{structwindow}{window} $\ast$win, \hyperlink{send_8c_aba7bc1797add20fe3efdf37ced1182c5}{uint8\+\_\+t} $\ast$ptr, int16\+\_\+t \hyperlink{ili9341_8c_a12ad102c2d1e7e119fdc040b0c922c7e}{x}, int16\+\_\+t \hyperlink{ili9341_8c_afe490938209e0b6b15224c05a01f0b40}{y}, int16\+\_\+t w, int16\+\_\+t h)
\begin{DoxyCompactList}\small\item\em \subsection*{B\+L\+IT functions }\end{DoxyCompactList}\item 
void \hyperlink{ili9341_8h_a90dda5b7ba495fcca6ab4e5259f6c6fe}{tft\+\_\+fill\+Win} (\hyperlink{structwindow}{window} $\ast$win, \hyperlink{send_8c_a273cf69d639a59973b6019625df33e30}{uint16\+\_\+t} color)
\begin{DoxyCompactList}\small\item\em \subsection*{Fill functions }\end{DoxyCompactList}\item 
void \hyperlink{ili9341_8h_a70194eb517d3ef94b34695e4599168ab}{tft\+\_\+flood} (\hyperlink{structwindow}{window} $\ast$win, int16\+\_\+t \hyperlink{ili9341_8c_a12ad102c2d1e7e119fdc040b0c922c7e}{x}, int16\+\_\+t \hyperlink{ili9341_8c_afe490938209e0b6b15224c05a01f0b40}{y}, \hyperlink{send_8c_a273cf69d639a59973b6019625df33e30}{uint16\+\_\+t} border, \hyperlink{send_8c_a273cf69d639a59973b6019625df33e30}{uint16\+\_\+t} fill)
\begin{DoxyCompactList}\small\item\em Flood fill. \end{DoxyCompactList}\item 
int \hyperlink{ili9341_8h_abeeeab813dc4bbff2e42b292748a69f6}{tft\+\_\+push\+\_\+xy} (int16\+\_\+t \hyperlink{ili9341_8c_a12ad102c2d1e7e119fdc040b0c922c7e}{x}, int16\+\_\+t \hyperlink{ili9341_8c_afe490938209e0b6b15224c05a01f0b40}{y})
\begin{DoxyCompactList}\small\item\em point push \end{DoxyCompactList}\item 
int \hyperlink{ili9341_8h_a965b65255c70e4dfcdf3c80365bb1358}{tft\+\_\+pop\+\_\+xy} (int16\+\_\+t $\ast$\hyperlink{ili9341_8c_a12ad102c2d1e7e119fdc040b0c922c7e}{x}, int16\+\_\+t $\ast$\hyperlink{ili9341_8c_afe490938209e0b6b15224c05a01f0b40}{y})
\begin{DoxyCompactList}\small\item\em point push \end{DoxyCompactList}\item 
int \hyperlink{ili9341_8h_a6223a118e376e361d8278428d1dac4fb}{tft\+\_\+floodline} (\hyperlink{structwindow}{window} $\ast$win, int16\+\_\+t \hyperlink{ili9341_8c_a12ad102c2d1e7e119fdc040b0c922c7e}{x}, int16\+\_\+t \hyperlink{ili9341_8c_afe490938209e0b6b15224c05a01f0b40}{y}, \hyperlink{send_8c_a273cf69d639a59973b6019625df33e30}{uint16\+\_\+t} border, \hyperlink{send_8c_a273cf69d639a59973b6019625df33e30}{uint16\+\_\+t} fill)
\begin{DoxyCompactList}\small\item\em Flood using line fill method. \end{DoxyCompactList}\item 
int \hyperlink{ili9341_8h_a6ab93eb7f022a179fed29999a4affd2f}{tft\+\_\+\+Fill\+Poly\+Line} (\hyperlink{structwindow}{window} $\ast$win, int16\+\_\+t \hyperlink{ili9341_8c_a12ad102c2d1e7e119fdc040b0c922c7e}{x}, int16\+\_\+t \hyperlink{ili9341_8c_afe490938209e0b6b15224c05a01f0b40}{y}, int w, \hyperlink{send_8c_a273cf69d639a59973b6019625df33e30}{uint16\+\_\+t} color)
\item 
void \hyperlink{ili9341_8h_a3c9368b6d6f6388a7c7f9ed89743e47f}{tft\+\_\+fill\+Rect\+WH} (\hyperlink{structwindow}{window} $\ast$win, int16\+\_\+t \hyperlink{ili9341_8c_a12ad102c2d1e7e119fdc040b0c922c7e}{x}, int16\+\_\+t \hyperlink{ili9341_8c_afe490938209e0b6b15224c05a01f0b40}{y}, int16\+\_\+t w, int16\+\_\+t h, \hyperlink{send_8c_a273cf69d639a59973b6019625df33e30}{uint16\+\_\+t} color)
\begin{DoxyCompactList}\small\item\em Partial window Fill with color We clip the window to the current view. \end{DoxyCompactList}\item 
void \hyperlink{ili9341_8h_a49f75769b08991ac4a56bfb2f4e1fa05}{tft\+\_\+fill\+Rect\+XY} (\hyperlink{structwindow}{window} $\ast$win, int16\+\_\+t \hyperlink{ili9341_8c_a12ad102c2d1e7e119fdc040b0c922c7e}{x}, int16\+\_\+t \hyperlink{ili9341_8c_afe490938209e0b6b15224c05a01f0b40}{y}, int16\+\_\+t xl, int16\+\_\+t yl, \hyperlink{send_8c_a273cf69d639a59973b6019625df33e30}{uint16\+\_\+t} color)
\begin{DoxyCompactList}\small\item\em Fill rectangle with color We clip the window to the current view. \end{DoxyCompactList}\item 
void \hyperlink{ili9341_8h_a675036a93108cdafe0b1060ba024c485}{tft\+\_\+draw\+Pixel} (\hyperlink{structwindow}{window} $\ast$win, int16\+\_\+t \hyperlink{ili9341_8c_a12ad102c2d1e7e119fdc040b0c922c7e}{x}, int16\+\_\+t \hyperlink{ili9341_8c_afe490938209e0b6b15224c05a01f0b40}{y}, int16\+\_\+t color)
\begin{DoxyCompactList}\small\item\em \subsection*{Pixel functions }\end{DoxyCompactList}\item 
void \hyperlink{ili9341_8h_a2e70141c8de6a4199f9fc39d8cfc758c}{tft\+\_\+write\+Rect} (\hyperlink{structwindow}{window} $\ast$win, int16\+\_\+t \hyperlink{ili9341_8c_a12ad102c2d1e7e119fdc040b0c922c7e}{x}, int16\+\_\+t \hyperlink{ili9341_8c_afe490938209e0b6b15224c05a01f0b40}{y}, int16\+\_\+t w, int16\+\_\+t h, \hyperlink{send_8c_a273cf69d639a59973b6019625df33e30}{uint16\+\_\+t} $\ast$color)
\begin{DoxyCompactList}\small\item\em Write a rectangle pixel array. \end{DoxyCompactList}\item 
void \hyperlink{ili9341_8h_a08bf5b6422229993b5d68e48c7b39619}{tft\+\_\+read\+Rect} (\hyperlink{structwindow}{window} $\ast$win, int16\+\_\+t \hyperlink{ili9341_8c_a12ad102c2d1e7e119fdc040b0c922c7e}{x}, int16\+\_\+t \hyperlink{ili9341_8c_afe490938209e0b6b15224c05a01f0b40}{y}, int16\+\_\+t w, int16\+\_\+t h, \hyperlink{send_8c_a273cf69d639a59973b6019625df33e30}{uint16\+\_\+t} $\ast$color)
\item 
void \hyperlink{ili9341_8h_a98e0ecaf3fc85ced7c0b7a2a504df02f}{tft\+\_\+\+Vscroll} (\hyperlink{structwindow}{window} $\ast$win, int dir)
\begin{DoxyCompactList}\small\item\em Scroll window up by dir lines We start at the top of the window and move down. \end{DoxyCompactList}\item 
\hyperlink{send_8c_a273cf69d639a59973b6019625df33e30}{uint16\+\_\+t} \hyperlink{ili9341_8h_ae282613acd29016b23947b0b053170b5}{tft\+\_\+read\+Pixel} (\hyperlink{structwindow}{window} $\ast$win, int16\+\_\+t \hyperlink{ili9341_8c_a12ad102c2d1e7e119fdc040b0c922c7e}{x}, int16\+\_\+t \hyperlink{ili9341_8c_afe490938209e0b6b15224c05a01f0b40}{y})
\begin{DoxyCompactList}\small\item\em Read one pixel and return color in 1bit 565 R\+GB format We clip the window to the current view Note\+: Read Memory must be done in a continious write/read operation Chip select can not be deactivated for the transaction. \end{DoxyCompactList}\item 
\hyperlink{earth2wireframe_8c_ad0fe97585b8891f5e4f2b9a6426330a4}{M\+E\+M\+S\+P\+A\+CE} void \hyperlink{ili9341_8h_a4c1271aab64c58f75e6de6471f430bbe}{tft\+\_\+set\+Rotation} (\hyperlink{send_8c_aba7bc1797add20fe3efdf37ced1182c5}{uint8\+\_\+t} m)
\begin{DoxyCompactList}\small\item\em Set Display rotation, applies to the master window only Set hardware display rotation and memory fill option bits Update software display limits F\+I\+X\+ME Work in progress. \end{DoxyCompactList}\item 
void \hyperlink{ili9341_8h_aecac98906474a88c3017fc3761328506}{tft\+\_\+565to\+R\+GB} (\hyperlink{send_8c_a273cf69d639a59973b6019625df33e30}{uint16\+\_\+t} color, \hyperlink{send_8c_aba7bc1797add20fe3efdf37ced1182c5}{uint8\+\_\+t} $\ast$r, \hyperlink{send_8c_aba7bc1797add20fe3efdf37ced1182c5}{uint8\+\_\+t} $\ast$g, \hyperlink{send_8c_aba7bc1797add20fe3efdf37ced1182c5}{uint8\+\_\+t} $\ast$b)
\begin{DoxyCompactList}\small\item\em \subsection*{Color conversions }\end{DoxyCompactList}\item 
\hyperlink{earth2wireframe_8c_ad0fe97585b8891f5e4f2b9a6426330a4}{M\+E\+M\+S\+P\+A\+CE} void \hyperlink{ili9341_8h_ac276806b0f70c3a69aaefa4a7937643b}{tft\+\_\+invert\+Display} (int flag)
\begin{DoxyCompactList}\small\item\em Invert the display. \end{DoxyCompactList}\item 
\hyperlink{earth2wireframe_8c_ad0fe97585b8891f5e4f2b9a6426330a4}{M\+E\+M\+S\+P\+A\+CE} int \hyperlink{ili9341_8h_af543a94ab615526f81039617a49ac6e5}{tft\+\_\+window\+\_\+clip} (\hyperlink{structwindow}{window} $\ast$win)
\begin{DoxyCompactList}\small\item\em Clip window structure to T\+FT limits. \end{DoxyCompactList}\item 
\hyperlink{earth2wireframe_8c_ad0fe97585b8891f5e4f2b9a6426330a4}{M\+E\+M\+S\+P\+A\+CE} void \hyperlink{ili9341_8h_adfcd8a18cff06d92e9d9c5959a66c9dd}{tft\+\_\+clip\+\_\+xy} (\hyperlink{structwindow}{window} $\ast$win, int16\+\_\+t $\ast$\hyperlink{cordic2c_8c_a46b4b48ef8c0c01099eb3bcdde8aa8db}{X}, int16\+\_\+t $\ast$\hyperlink{cordic2c_8c_ab746e677f466f17031e92ed577fc3c15}{Y})
\begin{DoxyCompactList}\small\item\em Clip X,Y to fix inside specifiied window. \end{DoxyCompactList}\item 
\hyperlink{earth2wireframe_8c_ad0fe97585b8891f5e4f2b9a6426330a4}{M\+E\+M\+S\+P\+A\+CE} int \hyperlink{ili9341_8h_a04d77513a2a6464617b3effa276196ae}{tft\+\_\+window\+\_\+clip\+\_\+args} (\hyperlink{structwindow}{window} $\ast$win, int16\+\_\+t $\ast$\hyperlink{ili9341_8c_a12ad102c2d1e7e119fdc040b0c922c7e}{x}, int16\+\_\+t $\ast$\hyperlink{ili9341_8c_afe490938209e0b6b15224c05a01f0b40}{y}, int16\+\_\+t $\ast$w, int16\+\_\+t $\ast$h)
\begin{DoxyCompactList}\small\item\em clip arguments to window limits Arguments position x,y width w and height h to be clipped \end{DoxyCompactList}\item 
\hyperlink{earth2wireframe_8c_ad0fe97585b8891f5e4f2b9a6426330a4}{M\+E\+M\+S\+P\+A\+CE} void \hyperlink{ili9341_8h_a5a31e1132605d6a60b66c4e969b56b37}{tft\+\_\+window\+\_\+init} (\hyperlink{structwindow}{window} $\ast$win, int16\+\_\+t \hyperlink{ili9341_8c_a12ad102c2d1e7e119fdc040b0c922c7e}{x}, int16\+\_\+t \hyperlink{ili9341_8c_afe490938209e0b6b15224c05a01f0b40}{y}, int16\+\_\+t w, int16\+\_\+t h)
\begin{DoxyCompactList}\small\item\em Initialize window structure we default values F\+I\+X\+ME check x+w, y+h absolute limits against T\+FT limuts. \end{DoxyCompactList}\item 
\hyperlink{earth2wireframe_8c_ad0fe97585b8891f5e4f2b9a6426330a4}{M\+E\+M\+S\+P\+A\+CE} void \hyperlink{ili9341_8h_aeedc758e5bf61e7ffb28d4a85de854e6}{tft\+\_\+set\+Text\+Color} (\hyperlink{structwindow}{window} $\ast$win, \hyperlink{send_8c_a273cf69d639a59973b6019625df33e30}{uint16\+\_\+t} fg, \hyperlink{send_8c_a273cf69d639a59973b6019625df33e30}{uint16\+\_\+t} bg)
\begin{DoxyCompactList}\small\item\em ==================================== \end{DoxyCompactList}\item 
\hyperlink{earth2wireframe_8c_ad0fe97585b8891f5e4f2b9a6426330a4}{M\+E\+M\+S\+P\+A\+CE} void \hyperlink{ili9341_8h_adaf98866e7cbd787fde096143d394699}{tft\+\_\+setpos} (\hyperlink{structwindow}{window} $\ast$win, int16\+\_\+t \hyperlink{ili9341_8c_a12ad102c2d1e7e119fdc040b0c922c7e}{x}, int16\+\_\+t \hyperlink{ili9341_8c_afe490938209e0b6b15224c05a01f0b40}{y})
\begin{DoxyCompactList}\small\item\em Set current window text pointer in pixels (per current rotation) \end{DoxyCompactList}\item 
\hyperlink{earth2wireframe_8c_ad0fe97585b8891f5e4f2b9a6426330a4}{M\+E\+M\+S\+P\+A\+CE} void \hyperlink{ili9341_8h_a2eb6ca3fa55bfe5ecf510bc4b25916fc}{tft\+\_\+set\+\_\+textpos} (\hyperlink{structwindow}{window} $\ast$win, int16\+\_\+t \hyperlink{ili9341_8c_a12ad102c2d1e7e119fdc040b0c922c7e}{x}, int16\+\_\+t \hyperlink{ili9341_8c_afe490938209e0b6b15224c05a01f0b40}{y})
\begin{DoxyCompactList}\small\item\em Set current window text pointer in characters (per current rotation) -\/ overall font bounding box. \end{DoxyCompactList}\item 
\hyperlink{earth2wireframe_8c_ad0fe97585b8891f5e4f2b9a6426330a4}{M\+E\+M\+S\+P\+A\+CE} void \hyperlink{ili9341_8h_aa530634bb661856089c9bc7d78f8805f}{tft\+\_\+set\+\_\+font} (\hyperlink{structwindow}{window} $\ast$win, \hyperlink{send_8c_a273cf69d639a59973b6019625df33e30}{uint16\+\_\+t} index)
\begin{DoxyCompactList}\small\item\em Set current font size (per current rotation) \end{DoxyCompactList}\item 
\hyperlink{earth2wireframe_8c_ad0fe97585b8891f5e4f2b9a6426330a4}{M\+E\+M\+S\+P\+A\+CE} void \hyperlink{ili9341_8h_aea5f4bb41e9459b03f1a0df02b01b9fa}{tft\+\_\+font\+\_\+fixed} (\hyperlink{structwindow}{window} $\ast$win)
\item 
\hyperlink{earth2wireframe_8c_ad0fe97585b8891f5e4f2b9a6426330a4}{M\+E\+M\+S\+P\+A\+CE} void \hyperlink{ili9341_8h_a6a3d78858315dd032ed3b31099867584}{tft\+\_\+font\+\_\+var} (\hyperlink{structwindow}{window} $\ast$win)
\begin{DoxyCompactList}\small\item\em Set current font type to variable. \end{DoxyCompactList}\item 
int \hyperlink{ili9341_8h_a616f9992d5ed309e96288a7e08b87bf3}{tft\+\_\+get\+\_\+font\+\_\+height} (\hyperlink{structwindow}{window} $\ast$win)
\begin{DoxyCompactList}\small\item\em Get font height. \end{DoxyCompactList}\item 
void \hyperlink{ili9341_8h_abbf471bb78e19ca798b644121089aeed}{tft\+\_\+draw\+Fast\+V\+Line} (\hyperlink{structwindow}{window} $\ast$win, int16\+\_\+t \hyperlink{ili9341_8c_a12ad102c2d1e7e119fdc040b0c922c7e}{x}, int16\+\_\+t \hyperlink{ili9341_8c_afe490938209e0b6b15224c05a01f0b40}{y}, int16\+\_\+t h, \hyperlink{send_8c_a273cf69d639a59973b6019625df33e30}{uint16\+\_\+t} color)
\begin{DoxyCompactList}\small\item\em Fast virtical line drawing. \end{DoxyCompactList}\item 
void \hyperlink{ili9341_8h_ae425260d907faa87a1b8e336f24ba54c}{tft\+\_\+draw\+Fast\+H\+Line} (\hyperlink{structwindow}{window} $\ast$win, int16\+\_\+t \hyperlink{ili9341_8c_a12ad102c2d1e7e119fdc040b0c922c7e}{x}, int16\+\_\+t \hyperlink{ili9341_8c_afe490938209e0b6b15224c05a01f0b40}{y}, int16\+\_\+t w, \hyperlink{send_8c_a273cf69d639a59973b6019625df33e30}{uint16\+\_\+t} color)
\begin{DoxyCompactList}\small\item\em Fast virtical line drawing. \end{DoxyCompactList}\item 
void \hyperlink{ili9341_8h_a7cef55bef133e9918955b4d2a53cf230}{tft\+\_\+draw\+Line} (\hyperlink{structwindow}{window} $\ast$win, int16\+\_\+t x0, int16\+\_\+t y0, int16\+\_\+t x1, int16\+\_\+t y1, \hyperlink{send_8c_a273cf69d639a59973b6019625df33e30}{uint16\+\_\+t} color)
\begin{DoxyCompactList}\small\item\em Draw line From my blit test code testit.\+c 1984 -\/ 1985 Mike Gore. \end{DoxyCompactList}\item 
int \hyperlink{ili9341_8h_ade9ab635e91789982bc86674b61611be}{tft\+\_\+\+Bezier2} (\hyperlink{structwindow}{window} $\ast$win, \hyperlink{structp2__int16__t}{p2\+\_\+int16\+\_\+t} S, \hyperlink{structp2__int16__t}{p2\+\_\+int16\+\_\+t} C, \hyperlink{structp2__int16__t}{p2\+\_\+int16\+\_\+t} T, int steps, \hyperlink{send_8c_a273cf69d639a59973b6019625df33e30}{uint16\+\_\+t} color)
\begin{DoxyCompactList}\small\item\em Draw lines between points along Quadratic Bézier curve Quadratic Bézier with respect to t, see \href{https://en.wikipedia.org/wiki/B}{\tt https\+://en.\+wikipedia.\+org/wiki/B}ézier\+\_\+curve B(t) = (1-\/t)$\ast$(1-\/t)$\ast$S + 2$\ast$(1-\/t)$\ast$t$\ast$C + t$\ast$t$\ast$T, 0 $<$= t $<$= 1. \end{DoxyCompactList}\item 
int \hyperlink{ili9341_8h_ab70455710ab3ff401ead3f87c2e103fc}{tft\+\_\+\+Bezier3} (\hyperlink{structwindow}{window} $\ast$win, \hyperlink{structp2__int16__t}{p2\+\_\+int16\+\_\+t} S, \hyperlink{structp2__int16__t}{p2\+\_\+int16\+\_\+t} C1, \hyperlink{structp2__int16__t}{p2\+\_\+int16\+\_\+t} C2, \hyperlink{structp2__int16__t}{p2\+\_\+int16\+\_\+t} T, int steps, \hyperlink{send_8c_a273cf69d639a59973b6019625df33e30}{uint16\+\_\+t} color)
\begin{DoxyCompactList}\small\item\em Draw lines between points along Cubic Bézier curve Quadratic Bézier with respect to t, see \href{https://en.wikipedia.org/wiki/B}{\tt https\+://en.\+wikipedia.\+org/wiki/B}ézier\+\_\+curve B(t) = (1-\/t)(1-\/t)$\ast$(1-\/t)$\ast$S + 3$\ast$(1-\/t)(1-\/t)$\ast$t$\ast$\+C1 + 3(1-\/t)$\ast$t$\ast$t$\ast$\+C2 + t$\ast$t$\ast$t$\ast$T, 0 $<$= t $<$= 1. \end{DoxyCompactList}\item 
\hyperlink{earth2wireframe_8c_ad0fe97585b8891f5e4f2b9a6426330a4}{M\+E\+M\+S\+P\+A\+CE} void \hyperlink{ili9341_8h_a9e2f1c5c213183804492d12ab89a1b43}{tft\+\_\+cleareol} (\hyperlink{structwindow}{window} $\ast$win)
\begin{DoxyCompactList}\small\item\em \subsection*{Character and String functions }\end{DoxyCompactList}\item 
\hyperlink{earth2wireframe_8c_ad0fe97585b8891f5e4f2b9a6426330a4}{M\+E\+M\+S\+P\+A\+CE} void \hyperlink{ili9341_8h_ab2312256c9579261cfa1ed62c4e82410}{tft\+\_\+clearline} (\hyperlink{structwindow}{window} $\ast$win)
\begin{DoxyCompactList}\small\item\em Clear display text line. \end{DoxyCompactList}\item 
void \hyperlink{ili9341_8h_afaf6907405d24bf529df5590f450d3cd}{tft\+\_\+putch} (\hyperlink{structwindow}{window} $\ast$win, int c)
\begin{DoxyCompactList}\small\item\em put character in current winoow \end{DoxyCompactList}\item 
void \hyperlink{ili9341_8h_ae8a7e08911796339320a3cc3beaea03a}{tft\+\_\+spi\+\_\+init} (\hyperlink{send_8c_a435d1572bf3f880d55459d9805097f62}{uint32\+\_\+t} prescale)
\item 
void \hyperlink{ili9341_8h_ace16843deffffe3332a7e16f14e1c4f7}{tft\+\_\+spi\+\_\+begin} (void)
\begin{DoxyCompactList}\small\item\em Obtain S\+PI bus for T\+FT display, assert chip select return\+: void. \end{DoxyCompactList}\item 
void \hyperlink{ili9341_8h_a6141eafeb5d38b1a5c5061ce0923a650}{tft\+\_\+spi\+\_\+end} (void)
\begin{DoxyCompactList}\small\item\em Release S\+PI bus from T\+FT display, deassert chip select return\+: void. \end{DoxyCompactList}\item 
void \hyperlink{ili9341_8h_a54cf2a7ed961e6a81c212c06b2580d16}{tft\+\_\+reset\+\_\+init} (void)
\begin{DoxyCompactList}\small\item\em Initialize I\+L\+I9341 reset G\+P\+IO return\+: void. \end{DoxyCompactList}\item 
void \hyperlink{ili9341_8h_ad0b8f3a939e2b4eb04910d938b61f95c}{tft\+\_\+reset\+\_\+enable} (void)
\begin{DoxyCompactList}\small\item\em enable I\+L\+I9341 reset return\+: void \end{DoxyCompactList}\item 
void \hyperlink{ili9341_8h_acf603db93753cb0381204da9a4fdefb2}{tft\+\_\+addr\+\_\+init} (void)
\begin{DoxyCompactList}\small\item\em Initialize I\+L\+I9341 command/data G\+P\+IO return\+: void. \end{DoxyCompactList}\item 
void \hyperlink{ili9341_8h_adab2982713fd22c9046d2a067781e282}{tft\+\_\+reset\+\_\+disable} (void)
\begin{DoxyCompactList}\small\item\em disnable I\+L\+I9341 reset return\+: void \end{DoxyCompactList}\item 
void \hyperlink{ili9341_8h_aa975fa5ad6bb7e52356d9d66ac733196}{tft\+\_\+spi\+\_\+\+TX} (\hyperlink{send_8c_aba7bc1797add20fe3efdf37ced1182c5}{uint8\+\_\+t} $\ast$data, int bytes, \hyperlink{send_8c_aba7bc1797add20fe3efdf37ced1182c5}{uint8\+\_\+t} command)
\begin{DoxyCompactList}\small\item\em Transmit 8 bit data array. \end{DoxyCompactList}\item 
void \hyperlink{ili9341_8h_ad2eda0e245536550e1a28da1d652629e}{tft\+\_\+spi\+\_\+\+T\+X\+RX} (\hyperlink{send_8c_aba7bc1797add20fe3efdf37ced1182c5}{uint8\+\_\+t} $\ast$data, int bytes, \hyperlink{send_8c_aba7bc1797add20fe3efdf37ced1182c5}{uint8\+\_\+t} command)
\begin{DoxyCompactList}\small\item\em Transmit and read 8 bit data array. \end{DoxyCompactList}\item 
void \hyperlink{ili9341_8h_aad54db2d053d783c70669fdbd414fda1}{tft\+\_\+spi\+\_\+\+RX} (\hyperlink{send_8c_aba7bc1797add20fe3efdf37ced1182c5}{uint8\+\_\+t} $\ast$data, int bytes, \hyperlink{send_8c_aba7bc1797add20fe3efdf37ced1182c5}{uint8\+\_\+t} command)
\begin{DoxyCompactList}\small\item\em read 8 bit data array \end{DoxyCompactList}\item 
\hyperlink{earth2wireframe_8c_ad0fe97585b8891f5e4f2b9a6426330a4}{M\+E\+M\+S\+P\+A\+CE} \hyperlink{structwindow}{window} $\ast$ \hyperlink{ili9341_8h_a14e5cdfbb744c04570df508551f77add}{tft\+\_\+init} (void)
\begin{DoxyCompactList}\small\item\em Initialize T\+FT. \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}
ili9341 driver inspired by Adafruit ili9341 code All code in this file has been rewritten by Mike Gore 

\begin{DoxyParagraph}{Copyright \copyright{} 2015 Mike Gore, G\+PL License}

\end{DoxyParagraph}
\begin{DoxyParagraph}{You are free to use this code under the terms of G\+PL}
please retain a copy of this notice in any code you use it in.
\end{DoxyParagraph}
\begin{DoxyParagraph}{Copyright \copyright{} 2013 Adafruit Industries. All rights reserved.}

\end{DoxyParagraph}
\begin{DoxySeeAlso}{See also}
\href{https://github.com/adafruit/Adafruit-GFX-Library}{\tt https\+://github.\+com/adafruit/\+Adafruit-\/\+G\+F\+X-\/\+Library}
\end{DoxySeeAlso}
\begin{DoxyParagraph}{Line drawing function C\+E\+R\+TS}

\end{DoxyParagraph}
\begin{DoxySeeAlso}{See also}
\href{https://github.com/CHERTS/esp8266-devkit/tree/master/Espressif/examples/esp8266_ili9341}{\tt https\+://github.\+com/\+C\+H\+E\+R\+T\+S/esp8266-\/devkit/tree/master/\+Espressif/examples/esp8266\+\_\+ili9341}
\end{DoxySeeAlso}
This is free software\+: you can redistribute it and/or modify it under the terms of the G\+NU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This software is distributed in the hope that it will be useful, but W\+I\+T\+H\+O\+UT A\+NY W\+A\+R\+R\+A\+N\+TY; without even the implied warranty of M\+E\+R\+C\+H\+A\+N\+T\+A\+B\+I\+L\+I\+TY or F\+I\+T\+N\+E\+SS F\+OR A P\+A\+R\+T\+I\+C\+U\+L\+AR P\+U\+R\+P\+O\+SE. See the G\+NU General Public License for more details.

You should have received a copy of the G\+NU General Public License along with this program. If not, see \href{http://www.gnu.org/licenses/}{\tt http\+://www.\+gnu.\+org/licenses/}. 

\subsection{Macro Definition Documentation}
\index{ili9341.\+h@{ili9341.\+h}!A\+BS@{A\+BS}}
\index{A\+BS@{A\+BS}!ili9341.\+h@{ili9341.\+h}}
\subsubsection[{\texorpdfstring{A\+BS}{ABS}}]{\setlength{\rightskip}{0pt plus 5cm}\#define A\+BS(
\begin{DoxyParamCaption}
\item[{}]{{\bf x}}
\end{DoxyParamCaption}
)~(({\bf x})$<$0 ? -\/({\bf x}) \+: ({\bf x}))}\hypertarget{ili9341_8h_a996f7be338ccb40d1a2a5abc1ad61759}{}\label{ili9341_8h_a996f7be338ccb40d1a2a5abc1ad61759}


Definition at line 96 of file ili9341.\+h.



Referenced by tft\+\_\+draw\+Fast\+H\+Line().

\index{ili9341.\+h@{ili9341.\+h}!F\+O\+N\+T\+\_\+\+V\+AR@{F\+O\+N\+T\+\_\+\+V\+AR}}
\index{F\+O\+N\+T\+\_\+\+V\+AR@{F\+O\+N\+T\+\_\+\+V\+AR}!ili9341.\+h@{ili9341.\+h}}
\subsubsection[{\texorpdfstring{F\+O\+N\+T\+\_\+\+V\+AR}{FONT_VAR}}]{\setlength{\rightskip}{0pt plus 5cm}\#define F\+O\+N\+T\+\_\+\+V\+AR~1}\hypertarget{ili9341_8h_a29fe4e7cb4d2be27f14f14431856391c}{}\label{ili9341_8h_a29fe4e7cb4d2be27f14f14431856391c}


Definition at line 78 of file ili9341.\+h.



Referenced by font\+\_\+attr(), tft\+\_\+font\+\_\+fixed(), and tft\+\_\+font\+\_\+var().

\index{ili9341.\+h@{ili9341.\+h}!M\+E\+M\+S\+P\+A\+CE@{M\+E\+M\+S\+P\+A\+CE}}
\index{M\+E\+M\+S\+P\+A\+CE@{M\+E\+M\+S\+P\+A\+CE}!ili9341.\+h@{ili9341.\+h}}
\subsubsection[{\texorpdfstring{M\+E\+M\+S\+P\+A\+CE}{MEMSPACE}}]{\setlength{\rightskip}{0pt plus 5cm}\#define M\+E\+M\+S\+P\+A\+CE}\hypertarget{ili9341_8h_ad0fe97585b8891f5e4f2b9a6426330a4}{}\label{ili9341_8h_ad0fe97585b8891f5e4f2b9a6426330a4}


Definition at line 66 of file ili9341.\+h.

\index{ili9341.\+h@{ili9341.\+h}!S\+W\+AP@{S\+W\+AP}}
\index{S\+W\+AP@{S\+W\+AP}!ili9341.\+h@{ili9341.\+h}}
\subsubsection[{\texorpdfstring{S\+W\+AP}{SWAP}}]{\setlength{\rightskip}{0pt plus 5cm}\#define S\+W\+AP(
\begin{DoxyParamCaption}
\item[{}]{a, }
\item[{}]{b}
\end{DoxyParamCaption}
)~do \{ a $^\wedge$= b; b $^\wedge$= a; a $^\wedge$= b; \} while(0)}\hypertarget{ili9341_8h_aac9153aee4bdb92701df902e06a74eb3}{}\label{ili9341_8h_aac9153aee4bdb92701df902e06a74eb3}


Definition at line 95 of file ili9341.\+h.



Referenced by tft\+\_\+fill\+Rect\+X\+Y(), and tft\+\_\+fill\+Triangle().

\index{ili9341.\+h@{ili9341.\+h}!T\+F\+T\+\_\+H@{T\+F\+T\+\_\+H}}
\index{T\+F\+T\+\_\+H@{T\+F\+T\+\_\+H}!ili9341.\+h@{ili9341.\+h}}
\subsubsection[{\texorpdfstring{T\+F\+T\+\_\+H}{TFT_H}}]{\setlength{\rightskip}{0pt plus 5cm}\#define T\+F\+T\+\_\+H~({\bf M\+A\+X\+\_\+\+T\+F\+T\+\_\+Y}-\/{\bf M\+I\+N\+\_\+\+T\+F\+T\+\_\+Y}+1)}\hypertarget{ili9341_8h_a27547bc8807c95c9e8e541e8cc92fece}{}\label{ili9341_8h_a27547bc8807c95c9e8e541e8cc92fece}


Definition at line 84 of file ili9341.\+h.



Referenced by tft\+\_\+init(), and tft\+\_\+set\+Rotation().

\index{ili9341.\+h@{ili9341.\+h}!tft\+\_\+\+R\+G\+Bto565@{tft\+\_\+\+R\+G\+Bto565}}
\index{tft\+\_\+\+R\+G\+Bto565@{tft\+\_\+\+R\+G\+Bto565}!ili9341.\+h@{ili9341.\+h}}
\subsubsection[{\texorpdfstring{tft\+\_\+\+R\+G\+Bto565}{tft_RGBto565}}]{\setlength{\rightskip}{0pt plus 5cm}\#define tft\+\_\+\+R\+G\+Bto565(
\begin{DoxyParamCaption}
\item[{}]{r, }
\item[{}]{g, }
\item[{}]{b}
\end{DoxyParamCaption}
)~(({\bf uint16\+\_\+t}) (((r) \& 0xf8) $<$$<$ 8) $\vert$ (((g) \& 0xfc) $<$$<$ 3) $\vert$ (((b) \& 0xf8) $>$$>$3))}\hypertarget{ili9341_8h_a6e05438fee5830ddbc6fa94a1770eefe}{}\label{ili9341_8h_a6e05438fee5830ddbc6fa94a1770eefe}


Pass 8-\/bit (each) R,G,B, get back 16-\/bit packed color I\+L\+I9341 defaults to M\+S\+B/\+L\+SB data so we have to reverse it. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em r} & red data \\
\hline
\mbox{\tt in}  & {\em b} & blue data \\
\hline
\mbox{\tt in}  & {\em g} & green data \\
\hline
\end{DoxyParams}


Definition at line 93 of file ili9341.\+h.



Referenced by test\+\_\+types(), tft\+\_\+\+Fill\+Poly\+Line(), tft\+\_\+read\+Pixel(), tft\+\_\+read\+Rect(), and user\+\_\+loop().

\index{ili9341.\+h@{ili9341.\+h}!T\+F\+T\+\_\+W@{T\+F\+T\+\_\+W}}
\index{T\+F\+T\+\_\+W@{T\+F\+T\+\_\+W}!ili9341.\+h@{ili9341.\+h}}
\subsubsection[{\texorpdfstring{T\+F\+T\+\_\+W}{TFT_W}}]{\setlength{\rightskip}{0pt plus 5cm}\#define T\+F\+T\+\_\+W~({\bf M\+A\+X\+\_\+\+T\+F\+T\+\_\+X}-\/{\bf M\+I\+N\+\_\+\+T\+F\+T\+\_\+X}+1)}\hypertarget{ili9341_8h_acd1bbb4cc5c0b122517e6dc6030ba441}{}\label{ili9341_8h_acd1bbb4cc5c0b122517e6dc6030ba441}


Definition at line 83 of file ili9341.\+h.



Referenced by tft\+\_\+init(), tft\+\_\+set\+Rotation(), and tft\+\_\+\+Vscroll().

\index{ili9341.\+h@{ili9341.\+h}!T\+F\+T\+\_\+\+X\+O\+FF@{T\+F\+T\+\_\+\+X\+O\+FF}}
\index{T\+F\+T\+\_\+\+X\+O\+FF@{T\+F\+T\+\_\+\+X\+O\+FF}!ili9341.\+h@{ili9341.\+h}}
\subsubsection[{\texorpdfstring{T\+F\+T\+\_\+\+X\+O\+FF}{TFT_XOFF}}]{\setlength{\rightskip}{0pt plus 5cm}\#define T\+F\+T\+\_\+\+X\+O\+FF~({\bf M\+I\+N\+\_\+\+T\+F\+T\+\_\+X})}\hypertarget{ili9341_8h_a9d8bf18fe27c3b37d767477f93515780}{}\label{ili9341_8h_a9d8bf18fe27c3b37d767477f93515780}


Definition at line 85 of file ili9341.\+h.



Referenced by tft\+\_\+init(), and tft\+\_\+set\+Rotation().

\index{ili9341.\+h@{ili9341.\+h}!T\+F\+T\+\_\+\+Y\+O\+FF@{T\+F\+T\+\_\+\+Y\+O\+FF}}
\index{T\+F\+T\+\_\+\+Y\+O\+FF@{T\+F\+T\+\_\+\+Y\+O\+FF}!ili9341.\+h@{ili9341.\+h}}
\subsubsection[{\texorpdfstring{T\+F\+T\+\_\+\+Y\+O\+FF}{TFT_YOFF}}]{\setlength{\rightskip}{0pt plus 5cm}\#define T\+F\+T\+\_\+\+Y\+O\+FF~({\bf M\+I\+N\+\_\+\+T\+F\+T\+\_\+Y})}\hypertarget{ili9341_8h_a9e86747a04cc5cca5f61042d742b7e40}{}\label{ili9341_8h_a9e86747a04cc5cca5f61042d742b7e40}


Definition at line 86 of file ili9341.\+h.



Referenced by tft\+\_\+init(), and tft\+\_\+set\+Rotation().

\index{ili9341.\+h@{ili9341.\+h}!W\+E\+A\+K\+\_\+\+A\+TR@{W\+E\+A\+K\+\_\+\+A\+TR}}
\index{W\+E\+A\+K\+\_\+\+A\+TR@{W\+E\+A\+K\+\_\+\+A\+TR}!ili9341.\+h@{ili9341.\+h}}
\subsubsection[{\texorpdfstring{W\+E\+A\+K\+\_\+\+A\+TR}{WEAK_ATR}}]{\setlength{\rightskip}{0pt plus 5cm}\#define W\+E\+A\+K\+\_\+\+A\+TR~{\bf \+\_\+\+\_\+attribute\+\_\+\+\_\+}((weak))}\hypertarget{ili9341_8h_a399da2caab82ec1bb3d5a8fbc5306768}{}\label{ili9341_8h_a399da2caab82ec1bb3d5a8fbc5306768}


Definition at line 71 of file ili9341.\+h.

\index{ili9341.\+h@{ili9341.\+h}!W\+R\+AP@{W\+R\+AP}}
\index{W\+R\+AP@{W\+R\+AP}!ili9341.\+h@{ili9341.\+h}}
\subsubsection[{\texorpdfstring{W\+R\+AP}{WRAP}}]{\setlength{\rightskip}{0pt plus 5cm}\#define W\+R\+AP~({\bf W\+R\+A\+P\+\_\+H} $\vert$ {\bf W\+R\+A\+P\+\_\+V})}\hypertarget{ili9341_8h_a43c1de45dbd91827a260224c9c40221b}{}\label{ili9341_8h_a43c1de45dbd91827a260224c9c40221b}


Definition at line 81 of file ili9341.\+h.

\index{ili9341.\+h@{ili9341.\+h}!W\+R\+A\+P\+\_\+H@{W\+R\+A\+P\+\_\+H}}
\index{W\+R\+A\+P\+\_\+H@{W\+R\+A\+P\+\_\+H}!ili9341.\+h@{ili9341.\+h}}
\subsubsection[{\texorpdfstring{W\+R\+A\+P\+\_\+H}{WRAP_H}}]{\setlength{\rightskip}{0pt plus 5cm}\#define W\+R\+A\+P\+\_\+H~2}\hypertarget{ili9341_8h_ab73b6f81ca48b2c6565e527a069914b3}{}\label{ili9341_8h_ab73b6f81ca48b2c6565e527a069914b3}


Definition at line 79 of file ili9341.\+h.



Referenced by tft\+\_\+draw\+Char(), tft\+\_\+putch(), and tft\+\_\+window\+\_\+init().

\index{ili9341.\+h@{ili9341.\+h}!W\+R\+A\+P\+\_\+V@{W\+R\+A\+P\+\_\+V}}
\index{W\+R\+A\+P\+\_\+V@{W\+R\+A\+P\+\_\+V}!ili9341.\+h@{ili9341.\+h}}
\subsubsection[{\texorpdfstring{W\+R\+A\+P\+\_\+V}{WRAP_V}}]{\setlength{\rightskip}{0pt plus 5cm}\#define W\+R\+A\+P\+\_\+V~4}\hypertarget{ili9341_8h_ae48f725a443ce4210c725908799554af}{}\label{ili9341_8h_ae48f725a443ce4210c725908799554af}


Definition at line 80 of file ili9341.\+h.



Referenced by tft\+\_\+draw\+Char().



\subsection{Function Documentation}
\index{ili9341.\+h@{ili9341.\+h}!draw\+S\+VG@{draw\+S\+VG}}
\index{draw\+S\+VG@{draw\+S\+VG}!ili9341.\+h@{ili9341.\+h}}
\subsubsection[{\texorpdfstring{draw\+S\+V\+G(window $\ast$win, int16\+\_\+t x, int16\+\_\+t y, int16\+\_\+t c, float scale, uint16\+\_\+t color, int16\+\_\+t fill)}{drawSVG(window *win, int16_t x, int16_t y, int16_t c, float scale, uint16_t color, int16_t fill)}}]{\setlength{\rightskip}{0pt plus 5cm}void draw\+S\+VG (
\begin{DoxyParamCaption}
\item[{{\bf window} $\ast$}]{win, }
\item[{int16\+\_\+t}]{x, }
\item[{int16\+\_\+t}]{y, }
\item[{int16\+\_\+t}]{c, }
\item[{float}]{scale, }
\item[{{\bf uint16\+\_\+t}}]{color, }
\item[{int16\+\_\+t}]{fill}
\end{DoxyParamCaption}
)}\hypertarget{ili9341_8h_a2f1b69d1fb9681eedc171a9b8402f3ca}{}\label{ili9341_8h_a2f1b69d1fb9681eedc171a9b8402f3ca}


Referenced by user\+\_\+tests().

\index{ili9341.\+h@{ili9341.\+h}!font\+\_\+attr@{font\+\_\+attr}}
\index{font\+\_\+attr@{font\+\_\+attr}!ili9341.\+h@{ili9341.\+h}}
\subsubsection[{\texorpdfstring{font\+\_\+attr(window $\ast$win, int c, \+\_\+fontc $\ast$f)}{font_attr(window *win, int c, _fontc *f)}}]{\setlength{\rightskip}{0pt plus 5cm}int font\+\_\+attr (
\begin{DoxyParamCaption}
\item[{{\bf window} $\ast$}]{win, }
\item[{int}]{c, }
\item[{{\bf \+\_\+fontc} $\ast$}]{f}
\end{DoxyParamCaption}
)}\hypertarget{ili9341_8h_acea4413f1d84d044b7d83a96bb0bcb79}{}\label{ili9341_8h_acea4413f1d84d044b7d83a96bb0bcb79}


Get font attributes for a font. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em $\ast$win} & Window Structure \\
\hline
\mbox{\tt in}  & {\em c} & character \\
\hline
\mbox{\tt in}  & {\em $\ast$f} & font structure \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
font number 
\end{DoxyReturn}


Definition at line 94 of file font.\+c.



Referenced by tft\+\_\+cleareol(), tft\+\_\+clearline(), tft\+\_\+draw\+Char(), tft\+\_\+get\+\_\+font\+\_\+height(), and tft\+\_\+putch().

\index{ili9341.\+h@{ili9341.\+h}!font\+\_\+H@{font\+\_\+H}}
\index{font\+\_\+H@{font\+\_\+H}!ili9341.\+h@{ili9341.\+h}}
\subsubsection[{\texorpdfstring{font\+\_\+\+H(int font)}{font_H(int font)}}]{\setlength{\rightskip}{0pt plus 5cm}int font\+\_\+H (
\begin{DoxyParamCaption}
\item[{int}]{font}
\end{DoxyParamCaption}
)}\hypertarget{ili9341_8h_aec37c6383e20a1fef1cd4924060ed693}{}\label{ili9341_8h_aec37c6383e20a1fef1cd4924060ed693}


Get font height used for line to line spacing. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em font} & font number \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Height in pixels 
\end{DoxyReturn}


Definition at line 70 of file font.\+c.



Referenced by test\+\_\+types(), and tft\+\_\+set\+\_\+textpos().

\index{ili9341.\+h@{ili9341.\+h}!font\+\_\+max@{font\+\_\+max}}
\index{font\+\_\+max@{font\+\_\+max}!ili9341.\+h@{ili9341.\+h}}
\subsubsection[{\texorpdfstring{font\+\_\+max(void)}{font_max(void)}}]{\setlength{\rightskip}{0pt plus 5cm}int font\+\_\+max (
\begin{DoxyParamCaption}
\item[{void}]{}
\end{DoxyParamCaption}
)}\hypertarget{ili9341_8h_a787c79d0b0179b4b0f725422301d0e52}{}\label{ili9341_8h_a787c79d0b0179b4b0f725422301d0e52}


Definition at line 59 of file font.\+c.



Referenced by tft\+\_\+set\+\_\+font().

\index{ili9341.\+h@{ili9341.\+h}!font\+\_\+W@{font\+\_\+W}}
\index{font\+\_\+W@{font\+\_\+W}!ili9341.\+h@{ili9341.\+h}}
\subsubsection[{\texorpdfstring{font\+\_\+\+W(int font)}{font_W(int font)}}]{\setlength{\rightskip}{0pt plus 5cm}int font\+\_\+W (
\begin{DoxyParamCaption}
\item[{int}]{font}
\end{DoxyParamCaption}
)}\hypertarget{ili9341_8h_a647c0e54986f2520898707b8accd28f3}{}\label{ili9341_8h_a647c0e54986f2520898707b8accd28f3}


Get font Width used for character to character spacing. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em font} & font number \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Width in pixels 
\end{DoxyReturn}


Definition at line 80 of file font.\+c.



Referenced by tft\+\_\+set\+\_\+textpos().

\index{ili9341.\+h@{ili9341.\+h}!sx@{sx}}
\index{sx@{sx}!ili9341.\+h@{ili9341.\+h}}
\subsubsection[{\texorpdfstring{sx(float scale, int16\+\_\+t xoff, int16\+\_\+t X)}{sx(float scale, int16_t xoff, int16_t X)}}]{\setlength{\rightskip}{0pt plus 5cm}int16\+\_\+t sx (
\begin{DoxyParamCaption}
\item[{float}]{scale, }
\item[{int16\+\_\+t}]{xoff, }
\item[{int16\+\_\+t}]{X}
\end{DoxyParamCaption}
)}\hypertarget{ili9341_8h_a0aa9c4ef2ff8fad916fe2f748c139c59}{}\label{ili9341_8h_a0aa9c4ef2ff8fad916fe2f748c139c59}


Referenced by tft\+\_\+draw\+Fast\+H\+Line().

\index{ili9341.\+h@{ili9341.\+h}!sy@{sy}}
\index{sy@{sy}!ili9341.\+h@{ili9341.\+h}}
\subsubsection[{\texorpdfstring{sy(float scale, int16\+\_\+t yoff, int16\+\_\+t Y)}{sy(float scale, int16_t yoff, int16_t Y)}}]{\setlength{\rightskip}{0pt plus 5cm}int16\+\_\+t sy (
\begin{DoxyParamCaption}
\item[{float}]{scale, }
\item[{int16\+\_\+t}]{yoff, }
\item[{int16\+\_\+t}]{Y}
\end{DoxyParamCaption}
)}\hypertarget{ili9341_8h_aade6a90a61d9ec9c45a7ad61180f9770}{}\label{ili9341_8h_aade6a90a61d9ec9c45a7ad61180f9770}


Referenced by tft\+\_\+draw\+Fast\+H\+Line().

\index{ili9341.\+h@{ili9341.\+h}!tft\+\_\+565to\+R\+GB@{tft\+\_\+565to\+R\+GB}}
\index{tft\+\_\+565to\+R\+GB@{tft\+\_\+565to\+R\+GB}!ili9341.\+h@{ili9341.\+h}}
\subsubsection[{\texorpdfstring{tft\+\_\+565to\+R\+G\+B(uint16\+\_\+t color, uint8\+\_\+t $\ast$r, uint8\+\_\+t $\ast$g, uint8\+\_\+t $\ast$b)}{tft_565toRGB(uint16_t color, uint8_t *r, uint8_t *g, uint8_t *b)}}]{\setlength{\rightskip}{0pt plus 5cm}void tft\+\_\+565to\+R\+GB (
\begin{DoxyParamCaption}
\item[{{\bf uint16\+\_\+t}}]{color, }
\item[{{\bf uint8\+\_\+t} $\ast$}]{r, }
\item[{{\bf uint8\+\_\+t} $\ast$}]{g, }
\item[{{\bf uint8\+\_\+t} $\ast$}]{b}
\end{DoxyParamCaption}
)}\hypertarget{ili9341_8h_aecac98906474a88c3017fc3761328506}{}\label{ili9341_8h_aecac98906474a88c3017fc3761328506}


\subsection*{Color conversions }

====================================Convert 16bit colr into 8-\/bit (each) R,G,B I\+L\+I9341 defaults to M\+S\+B/\+L\+SB data so we have to reverse it 
\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em color} & 16bit color \\
\hline
\mbox{\tt out}  & {\em $\ast$r} & red data \\
\hline
\mbox{\tt out}  & {\em $\ast$b} & blue data \\
\hline
\mbox{\tt out}  & {\em $\ast$g} & green data \\
\hline
\end{DoxyParams}


Definition at line 1033 of file ili9341.\+c.

\index{ili9341.\+h@{ili9341.\+h}!tft\+\_\+abs\+\_\+window@{tft\+\_\+abs\+\_\+window}}
\index{tft\+\_\+abs\+\_\+window@{tft\+\_\+abs\+\_\+window}!ili9341.\+h@{ili9341.\+h}}
\subsubsection[{\texorpdfstring{tft\+\_\+abs\+\_\+window(window $\ast$win, int16\+\_\+t x, int16\+\_\+t y, int16\+\_\+t w, int16\+\_\+t h)}{tft_abs_window(window *win, int16_t x, int16_t y, int16_t w, int16_t h)}}]{\setlength{\rightskip}{0pt plus 5cm}{\bf int32\+\_\+t} tft\+\_\+abs\+\_\+window (
\begin{DoxyParamCaption}
\item[{{\bf window} $\ast$}]{win, }
\item[{int16\+\_\+t}]{x, }
\item[{int16\+\_\+t}]{y, }
\item[{int16\+\_\+t}]{w, }
\item[{int16\+\_\+t}]{h}
\end{DoxyParamCaption}
)}\hypertarget{ili9341_8h_a4f8e68425197b38f3c9889b64b24f362}{}\label{ili9341_8h_a4f8e68425197b38f3c9889b64b24f362}


============================================================= 

==================================== \subsection*{window limits }

Set the ili9341 working window by absolute position and size Note\+: Function clips x,y,w,y 
\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em x} & Starting X offset \\
\hline
\mbox{\tt in}  & {\em y} & Starting Y offset \\
\hline
\mbox{\tt in}  & {\em w} & Width \\
\hline
\mbox{\tt in}  & {\em h} & Height \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
(w $\ast$ h) after clipping 
\end{DoxyReturn}


Definition at line 101 of file ili9341.\+c.



Referenced by tft\+\_\+rel\+\_\+window().

\index{ili9341.\+h@{ili9341.\+h}!tft\+\_\+addr\+\_\+init@{tft\+\_\+addr\+\_\+init}}
\index{tft\+\_\+addr\+\_\+init@{tft\+\_\+addr\+\_\+init}!ili9341.\+h@{ili9341.\+h}}
\subsubsection[{\texorpdfstring{tft\+\_\+addr\+\_\+init(void)}{tft_addr_init(void)}}]{\setlength{\rightskip}{0pt plus 5cm}void tft\+\_\+addr\+\_\+init (
\begin{DoxyParamCaption}
\item[{void}]{}
\end{DoxyParamCaption}
)}\hypertarget{ili9341_8h_acf603db93753cb0381204da9a4fdefb2}{}\label{ili9341_8h_acf603db93753cb0381204da9a4fdefb2}


Initialize I\+L\+I9341 command/data G\+P\+IO return\+: void. 



Definition at line 112 of file ili9341\+\_\+hal.\+c.



Referenced by tft\+\_\+init().

\index{ili9341.\+h@{ili9341.\+h}!tft\+\_\+\+Bezier2@{tft\+\_\+\+Bezier2}}
\index{tft\+\_\+\+Bezier2@{tft\+\_\+\+Bezier2}!ili9341.\+h@{ili9341.\+h}}
\subsubsection[{\texorpdfstring{tft\+\_\+\+Bezier2(window $\ast$win, p2\+\_\+int16\+\_\+t S, p2\+\_\+int16\+\_\+t C, p2\+\_\+int16\+\_\+t T, int steps, uint16\+\_\+t color)}{tft_Bezier2(window *win, p2_int16_t S, p2_int16_t C, p2_int16_t T, int steps, uint16_t color)}}]{\setlength{\rightskip}{0pt plus 5cm}int tft\+\_\+\+Bezier2 (
\begin{DoxyParamCaption}
\item[{{\bf window} $\ast$}]{win, }
\item[{{\bf p2\+\_\+int16\+\_\+t}}]{S, }
\item[{{\bf p2\+\_\+int16\+\_\+t}}]{C, }
\item[{{\bf p2\+\_\+int16\+\_\+t}}]{T, }
\item[{int}]{steps, }
\item[{{\bf uint16\+\_\+t}}]{color}
\end{DoxyParamCaption}
)}\hypertarget{ili9341_8h_ade9ab635e91789982bc86674b61611be}{}\label{ili9341_8h_ade9ab635e91789982bc86674b61611be}


Draw lines between points along Quadratic Bézier curve Quadratic Bézier with respect to t, see \href{https://en.wikipedia.org/wiki/B}{\tt https\+://en.\+wikipedia.\+org/wiki/B}ézier\+\_\+curve B(t) = (1-\/t)$\ast$(1-\/t)$\ast$S + 2$\ast$(1-\/t)$\ast$t$\ast$C + t$\ast$t$\ast$T, 0 $<$= t $<$= 1. 

==================================== \subsection*{Interpolation functions }

The path traced by the function B(t), given points S, C, and T, S = initial points C = control points T = target points

Derivative of the Bézier curve with respect to t B\textquotesingle{}(t) = 2$\ast$(1-\/t)$\ast$(C-\/S) + 2$\ast$t$\ast$(T-\/C)

Second derivative of the Bézier curve with respect to t is B"(t) = 2$\ast$(T-\/2$\ast$\+C+S)

As t increases from 0 to 1, the curve departs from S in the direction of C, then bends to arrive at T from the direction of C. The tangents to the curve at S and T intersect at C.


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em $\ast$win} & Window Structure of active window \\
\hline
\mbox{\tt in}  & {\em S} & Start \\
\hline
\mbox{\tt in}  & {\em C} & Control \\
\hline
\mbox{\tt in}  & {\em T} & Target \\
\hline
\mbox{\tt in}  & {\em steps} & line segments along curve (1..N) \\
\hline
\mbox{\tt in}  & {\em color} & Line color \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
count of line segments 
\end{DoxyReturn}


Definition at line 1474 of file ili9341.\+c.

\index{ili9341.\+h@{ili9341.\+h}!tft\+\_\+\+Bezier3@{tft\+\_\+\+Bezier3}}
\index{tft\+\_\+\+Bezier3@{tft\+\_\+\+Bezier3}!ili9341.\+h@{ili9341.\+h}}
\subsubsection[{\texorpdfstring{tft\+\_\+\+Bezier3(window $\ast$win, p2\+\_\+int16\+\_\+t S, p2\+\_\+int16\+\_\+t C1, p2\+\_\+int16\+\_\+t C2, p2\+\_\+int16\+\_\+t T, int steps, uint16\+\_\+t color)}{tft_Bezier3(window *win, p2_int16_t S, p2_int16_t C1, p2_int16_t C2, p2_int16_t T, int steps, uint16_t color)}}]{\setlength{\rightskip}{0pt plus 5cm}int tft\+\_\+\+Bezier3 (
\begin{DoxyParamCaption}
\item[{{\bf window} $\ast$}]{win, }
\item[{{\bf p2\+\_\+int16\+\_\+t}}]{S, }
\item[{{\bf p2\+\_\+int16\+\_\+t}}]{C1, }
\item[{{\bf p2\+\_\+int16\+\_\+t}}]{C2, }
\item[{{\bf p2\+\_\+int16\+\_\+t}}]{T, }
\item[{int}]{steps, }
\item[{{\bf uint16\+\_\+t}}]{color}
\end{DoxyParamCaption}
)}\hypertarget{ili9341_8h_ab70455710ab3ff401ead3f87c2e103fc}{}\label{ili9341_8h_ab70455710ab3ff401ead3f87c2e103fc}


Draw lines between points along Cubic Bézier curve Quadratic Bézier with respect to t, see \href{https://en.wikipedia.org/wiki/B}{\tt https\+://en.\+wikipedia.\+org/wiki/B}ézier\+\_\+curve B(t) = (1-\/t)(1-\/t)$\ast$(1-\/t)$\ast$S + 3$\ast$(1-\/t)(1-\/t)$\ast$t$\ast$\+C1 + 3(1-\/t)$\ast$t$\ast$t$\ast$\+C2 + t$\ast$t$\ast$t$\ast$T, 0 $<$= t $<$= 1. 

The path traced by the function B(t), given points S, C, and T, S = initial points C1 = control point 1 C2 = control point 2 T = target points

Derivative of the Bézier curve with respect to t B\textquotesingle{}(t) = 3(1-\/t)$\ast$(1-\/t)$\ast$(C1-\/S) + 6$\ast$(1-\/t)$\ast$t$\ast$(C2-\/\+C1) + 3$\ast$t$\ast$t$\ast$(T-\/\+C2)

Second derivative of the Bézier curve with respect to t is B"(t) = 6$\ast$(1-\/t)$\ast$(C2-\/2$\ast$\+C1+S) + 6$\ast$t$\ast$(T-\/2$\ast$\+C2+\+C1)

The curve starts at S and moves toward C1 and on to T from the direction of C2. Points C1 and C2 provide directional information and the distance between them determines \char`\"{}how far\char`\"{} and \char`\"{}how fast\char`\"{} the curve moves towards C1 before turning towards C2.


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em $\ast$win} & Window Structure of active window \\
\hline
\mbox{\tt in}  & {\em S} & Start \\
\hline
\mbox{\tt in}  & {\em C1} & Control 1 \\
\hline
\mbox{\tt in}  & {\em C2} & Control 2 \\
\hline
\mbox{\tt in}  & {\em T} & Target \\
\hline
\mbox{\tt in}  & {\em steps} & line segments along curve (1..N) \\
\hline
\mbox{\tt in}  & {\em color} & Line color \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
count of line segments 
\end{DoxyReturn}


Definition at line 1545 of file ili9341.\+c.

\index{ili9341.\+h@{ili9341.\+h}!tft\+\_\+bit\+\_\+blit@{tft\+\_\+bit\+\_\+blit}}
\index{tft\+\_\+bit\+\_\+blit@{tft\+\_\+bit\+\_\+blit}!ili9341.\+h@{ili9341.\+h}}
\subsubsection[{\texorpdfstring{tft\+\_\+bit\+\_\+blit(window $\ast$win, uint8\+\_\+t $\ast$ptr, int16\+\_\+t x, int16\+\_\+t y, int16\+\_\+t w, int16\+\_\+t h)}{tft_bit_blit(window *win, uint8_t *ptr, int16_t x, int16_t y, int16_t w, int16_t h)}}]{\setlength{\rightskip}{0pt plus 5cm}void tft\+\_\+bit\+\_\+blit (
\begin{DoxyParamCaption}
\item[{{\bf window} $\ast$}]{win, }
\item[{{\bf uint8\+\_\+t} $\ast$}]{ptr, }
\item[{int16\+\_\+t}]{x, }
\item[{int16\+\_\+t}]{y, }
\item[{int16\+\_\+t}]{w, }
\item[{int16\+\_\+t}]{h}
\end{DoxyParamCaption}
)}\hypertarget{ili9341_8h_a9aedd26c42606ba58f2f0a483619f323}{}\label{ili9341_8h_a9aedd26c42606ba58f2f0a483619f323}


\subsection*{B\+L\+IT functions }

B\+L\+IT a bit array to the display 
\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em win$\ast$} & window structure \\
\hline
\mbox{\tt in}  & {\em $\ast$ptr} & bit array w $\ast$ h in size \\
\hline
\mbox{\tt in}  & {\em x} & B\+L\+I\+TX offset \\
\hline
\mbox{\tt in}  & {\em y} & B\+L\+IT Y offset \\
\hline
\mbox{\tt in}  & {\em w} & B\+L\+IT Width \\
\hline
\mbox{\tt in}  & {\em h} & B\+L\+IT Height \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
void T\+O\+DO C\+L\+IP window -\/ depends on blit array 
\end{DoxyReturn}


Definition at line 234 of file ili9341.\+c.



Referenced by tft\+\_\+draw\+Char().

\index{ili9341.\+h@{ili9341.\+h}!tft\+\_\+cleareol@{tft\+\_\+cleareol}}
\index{tft\+\_\+cleareol@{tft\+\_\+cleareol}!ili9341.\+h@{ili9341.\+h}}
\subsubsection[{\texorpdfstring{tft\+\_\+cleareol(window $\ast$win)}{tft_cleareol(window *win)}}]{\setlength{\rightskip}{0pt plus 5cm}{\bf M\+E\+M\+S\+P\+A\+CE} void tft\+\_\+cleareol (
\begin{DoxyParamCaption}
\item[{{\bf window} $\ast$}]{win}
\end{DoxyParamCaption}
)}\hypertarget{ili9341_8h_a9e2f1c5c213183804492d12ab89a1b43}{}\label{ili9341_8h_a9e2f1c5c213183804492d12ab89a1b43}


\subsection*{Character and String functions }

====================================Clear display to end of line 
\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em win$\ast$} & window structure return\+: void, win-\/$>$x = win-\/$>$w \\
\hline
\end{DoxyParams}


Definition at line 1601 of file ili9341.\+c.



Referenced by tft\+\_\+putch(), and user\+\_\+loop().

\index{ili9341.\+h@{ili9341.\+h}!tft\+\_\+clearline@{tft\+\_\+clearline}}
\index{tft\+\_\+clearline@{tft\+\_\+clearline}!ili9341.\+h@{ili9341.\+h}}
\subsubsection[{\texorpdfstring{tft\+\_\+clearline(window $\ast$win)}{tft_clearline(window *win)}}]{\setlength{\rightskip}{0pt plus 5cm}{\bf M\+E\+M\+S\+P\+A\+CE} void tft\+\_\+clearline (
\begin{DoxyParamCaption}
\item[{{\bf window} $\ast$}]{win}
\end{DoxyParamCaption}
)}\hypertarget{ili9341_8h_ab2312256c9579261cfa1ed62c4e82410}{}\label{ili9341_8h_ab2312256c9579261cfa1ed62c4e82410}


Clear display text line. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em win$\ast$} & window structure return\+: void, win-\/$>$x = 0 \\
\hline
\end{DoxyParams}


Definition at line 1621 of file ili9341.\+c.

\index{ili9341.\+h@{ili9341.\+h}!tft\+\_\+clip\+\_\+xy@{tft\+\_\+clip\+\_\+xy}}
\index{tft\+\_\+clip\+\_\+xy@{tft\+\_\+clip\+\_\+xy}!ili9341.\+h@{ili9341.\+h}}
\subsubsection[{\texorpdfstring{tft\+\_\+clip\+\_\+xy(window $\ast$win, int16\+\_\+t $\ast$\+X, int16\+\_\+t $\ast$\+Y)}{tft_clip_xy(window *win, int16_t *X, int16_t *Y)}}]{\setlength{\rightskip}{0pt plus 5cm}{\bf M\+E\+M\+S\+P\+A\+CE} void tft\+\_\+clip\+\_\+xy (
\begin{DoxyParamCaption}
\item[{{\bf window} $\ast$}]{win, }
\item[{int16\+\_\+t $\ast$}]{X, }
\item[{int16\+\_\+t $\ast$}]{Y}
\end{DoxyParamCaption}
)}\hypertarget{ili9341_8h_adfcd8a18cff06d92e9d9c5959a66c9dd}{}\label{ili9341_8h_adfcd8a18cff06d92e9d9c5959a66c9dd}


Clip X,Y to fix inside specifiied window. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em $\ast$win} & window structure \\
\hline
\mbox{\tt in}  & {\em $\ast$X} & X position in window \\
\hline
\mbox{\tt in}  & {\em $\ast$Y} & Y position is window return\+: void \\
\hline
\end{DoxyParams}


Definition at line 1114 of file ili9341.\+c.

\index{ili9341.\+h@{ili9341.\+h}!tft\+\_\+\+Cmd@{tft\+\_\+\+Cmd}}
\index{tft\+\_\+\+Cmd@{tft\+\_\+\+Cmd}!ili9341.\+h@{ili9341.\+h}}
\subsubsection[{\texorpdfstring{tft\+\_\+\+Cmd(uint8\+\_\+t cmd)}{tft_Cmd(uint8_t cmd)}}]{\setlength{\rightskip}{0pt plus 5cm}void tft\+\_\+\+Cmd (
\begin{DoxyParamCaption}
\item[{{\bf uint8\+\_\+t}}]{cmd}
\end{DoxyParamCaption}
)}\hypertarget{ili9341_8h_a944393583142b4a19593eec1a743b90e}{}\label{ili9341_8h_a944393583142b4a19593eec1a743b90e}


Transmit 8 bit command. 

\subsection*{============================================================= }


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em cmd} & display command return\+: void status is in data array -\/ bytes in size \\
\hline
\end{DoxyParams}


Definition at line 53 of file ili9341.\+c.



Referenced by tft\+\_\+bit\+\_\+blit(), tft\+\_\+\+Cmd\+\_\+\+Data\+\_\+\+T\+X(), tft\+\_\+\+Fill\+Poly\+Line(), tft\+\_\+fill\+Rect\+W\+H(), tft\+\_\+invert\+Display(), tft\+\_\+read\+Pixel(), tft\+\_\+read\+Rect(), tft\+\_\+read\+Register(), and tft\+\_\+write\+Rect().

\index{ili9341.\+h@{ili9341.\+h}!tft\+\_\+\+Cmd\+\_\+\+Data\+\_\+\+TX@{tft\+\_\+\+Cmd\+\_\+\+Data\+\_\+\+TX}}
\index{tft\+\_\+\+Cmd\+\_\+\+Data\+\_\+\+TX@{tft\+\_\+\+Cmd\+\_\+\+Data\+\_\+\+TX}!ili9341.\+h@{ili9341.\+h}}
\subsubsection[{\texorpdfstring{tft\+\_\+\+Cmd\+\_\+\+Data\+\_\+\+T\+X(uint8\+\_\+t cmd, uint8\+\_\+t $\ast$data, int bytes)}{tft_Cmd_Data_TX(uint8_t cmd, uint8_t *data, int bytes)}}]{\setlength{\rightskip}{0pt plus 5cm}void tft\+\_\+\+Cmd\+\_\+\+Data\+\_\+\+TX (
\begin{DoxyParamCaption}
\item[{{\bf uint8\+\_\+t}}]{cmd, }
\item[{{\bf uint8\+\_\+t} $\ast$}]{data, }
\item[{int}]{bytes}
\end{DoxyParamCaption}
)}\hypertarget{ili9341_8h_a666fba3ffecff43f44c647bed2d012fe}{}\label{ili9341_8h_a666fba3ffecff43f44c647bed2d012fe}


Transmit 8 bit command and optionally send data buffer. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em cmd} & display command \\
\hline
\mbox{\tt in}  & {\em $\ast$data} & data buffer to send after command \\
\hline
\mbox{\tt in}  & {\em bytes} & data buffer size return\+: void status is in data array -\/ bytes in size \\
\hline
\end{DoxyParams}


Definition at line 72 of file ili9341.\+c.



Referenced by tft\+\_\+abs\+\_\+window(), tft\+\_\+config\+Register(), tft\+\_\+draw\+Pixel(), and tft\+\_\+set\+Rotation().

\index{ili9341.\+h@{ili9341.\+h}!tft\+\_\+\+Data@{tft\+\_\+\+Data}}
\index{tft\+\_\+\+Data@{tft\+\_\+\+Data}!ili9341.\+h@{ili9341.\+h}}
\subsubsection[{\texorpdfstring{tft\+\_\+\+Data(uint8\+\_\+t data)}{tft_Data(uint8_t data)}}]{\setlength{\rightskip}{0pt plus 5cm}{\bf uint8\+\_\+t} tft\+\_\+\+Data (
\begin{DoxyParamCaption}
\item[{{\bf uint8\+\_\+t}}]{data}
\end{DoxyParamCaption}
)}\hypertarget{ili9341_8h_a2e9724741987970e9a1a866446bc3a2f}{}\label{ili9341_8h_a2e9724741987970e9a1a866446bc3a2f}


Transmit 8 bit data amd read 8bit data. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em data} & display command return\+: read result \\
\hline
\end{DoxyParams}


Definition at line 61 of file ili9341.\+c.



Referenced by tft\+\_\+read\+Register().

\index{ili9341.\+h@{ili9341.\+h}!tft\+\_\+draw\+Fast\+H\+Line@{tft\+\_\+draw\+Fast\+H\+Line}}
\index{tft\+\_\+draw\+Fast\+H\+Line@{tft\+\_\+draw\+Fast\+H\+Line}!ili9341.\+h@{ili9341.\+h}}
\subsubsection[{\texorpdfstring{tft\+\_\+draw\+Fast\+H\+Line(window $\ast$win, int16\+\_\+t x, int16\+\_\+t y, int16\+\_\+t w, uint16\+\_\+t color)}{tft_drawFastHLine(window *win, int16_t x, int16_t y, int16_t w, uint16_t color)}}]{\setlength{\rightskip}{0pt plus 5cm}void tft\+\_\+draw\+Fast\+H\+Line (
\begin{DoxyParamCaption}
\item[{{\bf window} $\ast$}]{win, }
\item[{int16\+\_\+t}]{x, }
\item[{int16\+\_\+t}]{y, }
\item[{int16\+\_\+t}]{w, }
\item[{{\bf uint16\+\_\+t}}]{color}
\end{DoxyParamCaption}
)}\hypertarget{ili9341_8h_ae425260d907faa87a1b8e336f24ba54c}{}\label{ili9341_8h_ae425260d907faa87a1b8e336f24ba54c}


Fast virtical line drawing. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em $\ast$win} & window structure \\
\hline
\mbox{\tt in}  & {\em x} & X offset \\
\hline
\mbox{\tt in}  & {\em y} & Y offset \\
\hline
\mbox{\tt in}  & {\em w} & Width of line \\
\hline
\mbox{\tt in}  & {\em color} & Color \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
void 
\end{DoxyReturn}


Definition at line 1329 of file ili9341.\+c.



Referenced by tft\+\_\+draw\+Rect(), tft\+\_\+draw\+Round\+Rect(), tft\+\_\+\+Fill\+Poly\+Line(), and tft\+\_\+fill\+Triangle().

\index{ili9341.\+h@{ili9341.\+h}!tft\+\_\+draw\+Fast\+V\+Line@{tft\+\_\+draw\+Fast\+V\+Line}}
\index{tft\+\_\+draw\+Fast\+V\+Line@{tft\+\_\+draw\+Fast\+V\+Line}!ili9341.\+h@{ili9341.\+h}}
\subsubsection[{\texorpdfstring{tft\+\_\+draw\+Fast\+V\+Line(window $\ast$win, int16\+\_\+t x, int16\+\_\+t y, int16\+\_\+t h, uint16\+\_\+t color)}{tft_drawFastVLine(window *win, int16_t x, int16_t y, int16_t h, uint16_t color)}}]{\setlength{\rightskip}{0pt plus 5cm}void tft\+\_\+draw\+Fast\+V\+Line (
\begin{DoxyParamCaption}
\item[{{\bf window} $\ast$}]{win, }
\item[{int16\+\_\+t}]{x, }
\item[{int16\+\_\+t}]{y, }
\item[{int16\+\_\+t}]{h, }
\item[{{\bf uint16\+\_\+t}}]{color}
\end{DoxyParamCaption}
)}\hypertarget{ili9341_8h_abbf471bb78e19ca798b644121089aeed}{}\label{ili9341_8h_abbf471bb78e19ca798b644121089aeed}


Fast virtical line drawing. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em $\ast$win} & window structure \\
\hline
\mbox{\tt in}  & {\em x} & X offset \\
\hline
\mbox{\tt in}  & {\em y} & Y offset \\
\hline
\mbox{\tt in}  & {\em h} & Height of line \\
\hline
\mbox{\tt in}  & {\em color} & Color \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
void 
\end{DoxyReturn}


Definition at line 1314 of file ili9341.\+c.



Referenced by tft\+\_\+draw\+Rect(), tft\+\_\+draw\+Round\+Rect(), tft\+\_\+fill\+Circle(), and tft\+\_\+fill\+Circle\+Helper().

\index{ili9341.\+h@{ili9341.\+h}!tft\+\_\+draw\+Line@{tft\+\_\+draw\+Line}}
\index{tft\+\_\+draw\+Line@{tft\+\_\+draw\+Line}!ili9341.\+h@{ili9341.\+h}}
\subsubsection[{\texorpdfstring{tft\+\_\+draw\+Line(window $\ast$win, int16\+\_\+t x0, int16\+\_\+t y0, int16\+\_\+t x1, int16\+\_\+t y1, uint16\+\_\+t color)}{tft_drawLine(window *win, int16_t x0, int16_t y0, int16_t x1, int16_t y1, uint16_t color)}}]{\setlength{\rightskip}{0pt plus 5cm}void tft\+\_\+draw\+Line (
\begin{DoxyParamCaption}
\item[{{\bf window} $\ast$}]{win, }
\item[{int16\+\_\+t}]{x0, }
\item[{int16\+\_\+t}]{y0, }
\item[{int16\+\_\+t}]{x1, }
\item[{int16\+\_\+t}]{y1, }
\item[{{\bf uint16\+\_\+t}}]{color}
\end{DoxyParamCaption}
)}\hypertarget{ili9341_8h_a7cef55bef133e9918955b4d2a53cf230}{}\label{ili9341_8h_a7cef55bef133e9918955b4d2a53cf230}


Draw line From my blit test code testit.\+c 1984 -\/ 1985 Mike Gore. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em win$\ast$} & window structure \\
\hline
\mbox{\tt in}  & {\em x0} & X Start \\
\hline
\mbox{\tt in}  & {\em y0} & Y Start \\
\hline
\mbox{\tt in}  & {\em x1} & X End \\
\hline
\mbox{\tt in}  & {\em y1} & Y End \\
\hline
\mbox{\tt in}  & {\em color} & color to set \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
void Draw line Draw line from C\+E\+R\+TS \href{https://github.com/CHERTS/esp8266-devkit/tree/master/Espressif/examples/esp8266_ili9341}{\tt https\+://github.\+com/\+C\+H\+E\+R\+T\+S/esp8266-\/devkit/tree/master/\+Espressif/examples/esp8266\+\_\+ili9341} 
\end{DoxyReturn}

\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em win$\ast$} & window structure \\
\hline
\mbox{\tt in}  & {\em x0} & X Start \\
\hline
\mbox{\tt in}  & {\em y0} & Y Start \\
\hline
\mbox{\tt in}  & {\em x1} & X End \\
\hline
\mbox{\tt in}  & {\em y1} & Y End \\
\hline
\mbox{\tt in}  & {\em color} & color to set \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
void 
\end{DoxyReturn}


Definition at line 1389 of file ili9341.\+c.



Referenced by tft\+\_\+\+Bezier2(), tft\+\_\+\+Bezier3(), tft\+\_\+draw\+Fast\+H\+Line(), tft\+\_\+draw\+Triangle(), and wire\+\_\+draw().

\index{ili9341.\+h@{ili9341.\+h}!tft\+\_\+draw\+Pixel@{tft\+\_\+draw\+Pixel}}
\index{tft\+\_\+draw\+Pixel@{tft\+\_\+draw\+Pixel}!ili9341.\+h@{ili9341.\+h}}
\subsubsection[{\texorpdfstring{tft\+\_\+draw\+Pixel(window $\ast$win, int16\+\_\+t x, int16\+\_\+t y, int16\+\_\+t color)}{tft_drawPixel(window *win, int16_t x, int16_t y, int16_t color)}}]{\setlength{\rightskip}{0pt plus 5cm}void tft\+\_\+draw\+Pixel (
\begin{DoxyParamCaption}
\item[{{\bf window} $\ast$}]{win, }
\item[{int16\+\_\+t}]{x, }
\item[{int16\+\_\+t}]{y, }
\item[{int16\+\_\+t}]{color}
\end{DoxyParamCaption}
)}\hypertarget{ili9341_8h_a675036a93108cdafe0b1060ba024c485}{}\label{ili9341_8h_a675036a93108cdafe0b1060ba024c485}


\subsection*{Pixel functions }

====================================Draw one pixel set to color in 16bit 565 R\+GB format We clip the window to the current view 
\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em win$\ast$} & window structure \\
\hline
\mbox{\tt in}  & {\em x} & X Start \\
\hline
\mbox{\tt in}  & {\em y} & Y Start \\
\hline
\mbox{\tt in}  & {\em color} & color to set \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
void 
\end{DoxyReturn}


Definition at line 717 of file ili9341.\+c.



Referenced by tft\+\_\+bit\+\_\+blit(), tft\+\_\+draw\+Circle(), tft\+\_\+draw\+Circle\+Helper(), tft\+\_\+draw\+Fast\+H\+Line(), tft\+\_\+flood(), tft\+\_\+floodline(), tft\+\_\+write\+Rect(), and user\+\_\+tests().

\index{ili9341.\+h@{ili9341.\+h}!tft\+\_\+\+Fill\+Poly\+Line@{tft\+\_\+\+Fill\+Poly\+Line}}
\index{tft\+\_\+\+Fill\+Poly\+Line@{tft\+\_\+\+Fill\+Poly\+Line}!ili9341.\+h@{ili9341.\+h}}
\subsubsection[{\texorpdfstring{tft\+\_\+\+Fill\+Poly\+Line(window $\ast$win, int16\+\_\+t x, int16\+\_\+t y, int w, uint16\+\_\+t color)}{tft_FillPolyLine(window *win, int16_t x, int16_t y, int w, uint16_t color)}}]{\setlength{\rightskip}{0pt plus 5cm}int tft\+\_\+\+Fill\+Poly\+Line (
\begin{DoxyParamCaption}
\item[{{\bf window} $\ast$}]{win, }
\item[{int16\+\_\+t}]{x, }
\item[{int16\+\_\+t}]{y, }
\item[{int}]{w, }
\item[{{\bf uint16\+\_\+t}}]{color}
\end{DoxyParamCaption}
)}\hypertarget{ili9341_8h_a6ab93eb7f022a179fed29999a4affd2f}{}\label{ili9341_8h_a6ab93eb7f022a179fed29999a4affd2f}


Definition at line 510 of file ili9341.\+c.

\index{ili9341.\+h@{ili9341.\+h}!tft\+\_\+fill\+Rect\+WH@{tft\+\_\+fill\+Rect\+WH}}
\index{tft\+\_\+fill\+Rect\+WH@{tft\+\_\+fill\+Rect\+WH}!ili9341.\+h@{ili9341.\+h}}
\subsubsection[{\texorpdfstring{tft\+\_\+fill\+Rect\+W\+H(window $\ast$win, int16\+\_\+t x, int16\+\_\+t y, int16\+\_\+t w, int16\+\_\+t h, uint16\+\_\+t color)}{tft_fillRectWH(window *win, int16_t x, int16_t y, int16_t w, int16_t h, uint16_t color)}}]{\setlength{\rightskip}{0pt plus 5cm}void tft\+\_\+fill\+Rect\+WH (
\begin{DoxyParamCaption}
\item[{{\bf window} $\ast$}]{win, }
\item[{int16\+\_\+t}]{x, }
\item[{int16\+\_\+t}]{y, }
\item[{int16\+\_\+t}]{w, }
\item[{int16\+\_\+t}]{h, }
\item[{{\bf uint16\+\_\+t}}]{color}
\end{DoxyParamCaption}
)}\hypertarget{ili9341_8h_a3c9368b6d6f6388a7c7f9ed89743e47f}{}\label{ili9341_8h_a3c9368b6d6f6388a7c7f9ed89743e47f}


Partial window Fill with color We clip the window to the current view. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em win$\ast$} & window structure \\
\hline
\mbox{\tt in}  & {\em x} & X Start \\
\hline
\mbox{\tt in}  & {\em y} & Y Start \\
\hline
\mbox{\tt in}  & {\em w} & Width \\
\hline
\mbox{\tt in}  & {\em h} & Height \\
\hline
\mbox{\tt in}  & {\em color} & Fill color \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
void 
\end{DoxyReturn}


Definition at line 627 of file ili9341.\+c.



Referenced by tft\+\_\+cleareol(), tft\+\_\+clearline(), tft\+\_\+draw\+Char(), tft\+\_\+draw\+Fast\+H\+Line(), tft\+\_\+draw\+Fast\+V\+Line(), tft\+\_\+fill\+Rect\+X\+Y(), tft\+\_\+fill\+Round\+Rect(), tft\+\_\+fill\+Win(), tft\+\_\+putch(), and tft\+\_\+\+Vscroll().

\index{ili9341.\+h@{ili9341.\+h}!tft\+\_\+fill\+Rect\+XY@{tft\+\_\+fill\+Rect\+XY}}
\index{tft\+\_\+fill\+Rect\+XY@{tft\+\_\+fill\+Rect\+XY}!ili9341.\+h@{ili9341.\+h}}
\subsubsection[{\texorpdfstring{tft\+\_\+fill\+Rect\+X\+Y(window $\ast$win, int16\+\_\+t x, int16\+\_\+t y, int16\+\_\+t xl, int16\+\_\+t yl, uint16\+\_\+t color)}{tft_fillRectXY(window *win, int16_t x, int16_t y, int16_t xl, int16_t yl, uint16_t color)}}]{\setlength{\rightskip}{0pt plus 5cm}void tft\+\_\+fill\+Rect\+XY (
\begin{DoxyParamCaption}
\item[{{\bf window} $\ast$}]{win, }
\item[{int16\+\_\+t}]{x, }
\item[{int16\+\_\+t}]{y, }
\item[{int16\+\_\+t}]{xl, }
\item[{int16\+\_\+t}]{yl, }
\item[{{\bf uint16\+\_\+t}}]{color}
\end{DoxyParamCaption}
)}\hypertarget{ili9341_8h_a49f75769b08991ac4a56bfb2f4e1fa05}{}\label{ili9341_8h_a49f75769b08991ac4a56bfb2f4e1fa05}


Fill rectangle with color We clip the window to the current view. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em win$\ast$} & window structure \\
\hline
\mbox{\tt in}  & {\em x} & X Start \\
\hline
\mbox{\tt in}  & {\em y} & Y Start \\
\hline
\mbox{\tt in}  & {\em xl} & X End \\
\hline
\mbox{\tt in}  & {\em yl} & Y End \\
\hline
\mbox{\tt in}  & {\em color} & Fill color \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
void 
\end{DoxyReturn}


Definition at line 690 of file ili9341.\+c.



Referenced by tft\+\_\+draw\+Fast\+H\+Line().

\index{ili9341.\+h@{ili9341.\+h}!tft\+\_\+fill\+Win@{tft\+\_\+fill\+Win}}
\index{tft\+\_\+fill\+Win@{tft\+\_\+fill\+Win}!ili9341.\+h@{ili9341.\+h}}
\subsubsection[{\texorpdfstring{tft\+\_\+fill\+Win(window $\ast$win, uint16\+\_\+t color)}{tft_fillWin(window *win, uint16_t color)}}]{\setlength{\rightskip}{0pt plus 5cm}void tft\+\_\+fill\+Win (
\begin{DoxyParamCaption}
\item[{{\bf window} $\ast$}]{win, }
\item[{{\bf uint16\+\_\+t}}]{color}
\end{DoxyParamCaption}
)}\hypertarget{ili9341_8h_a90dda5b7ba495fcca6ab4e5259f6c6fe}{}\label{ili9341_8h_a90dda5b7ba495fcca6ab4e5259f6c6fe}


\subsection*{Fill functions }

====================================Fill window 
\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em win$\ast$} & window structure \\
\hline
\mbox{\tt in}  & {\em color} & Fill color \\
\hline
\end{DoxyParams}


Definition at line 334 of file ili9341.\+c.



Referenced by test\+\_\+types(), tft\+\_\+init(), and tft\+\_\+putch().

\index{ili9341.\+h@{ili9341.\+h}!tft\+\_\+flood@{tft\+\_\+flood}}
\index{tft\+\_\+flood@{tft\+\_\+flood}!ili9341.\+h@{ili9341.\+h}}
\subsubsection[{\texorpdfstring{tft\+\_\+flood(window $\ast$win, int16\+\_\+t x, int16\+\_\+t y, uint16\+\_\+t border, uint16\+\_\+t fill)}{tft_flood(window *win, int16_t x, int16_t y, uint16_t border, uint16_t fill)}}]{\setlength{\rightskip}{0pt plus 5cm}void tft\+\_\+flood (
\begin{DoxyParamCaption}
\item[{{\bf window} $\ast$}]{win, }
\item[{int16\+\_\+t}]{x, }
\item[{int16\+\_\+t}]{y, }
\item[{{\bf uint16\+\_\+t}}]{border, }
\item[{{\bf uint16\+\_\+t}}]{fill}
\end{DoxyParamCaption}
)}\hypertarget{ili9341_8h_a70194eb517d3ef94b34695e4599168ab}{}\label{ili9341_8h_a70194eb517d3ef94b34695e4599168ab}


Flood fill. 

\begin{DoxySeeAlso}{See also}
\href{https://en.wikipedia.org/wiki/Flood_fill}{\tt https\+://en.\+wikipedia.\+org/wiki/\+Flood\+\_\+fill} This method can eat all your ram with \char`\"{}busy\char`\"{} images and could crash 
\end{DoxySeeAlso}

\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em win$\ast$} & window structure \\
\hline
\mbox{\tt in}  & {\em border} & border color \\
\hline
\mbox{\tt in}  & {\em fill} & Fill color \\
\hline
\end{DoxyParams}


Definition at line 346 of file ili9341.\+c.



Referenced by tft\+\_\+flood().

\index{ili9341.\+h@{ili9341.\+h}!tft\+\_\+floodline@{tft\+\_\+floodline}}
\index{tft\+\_\+floodline@{tft\+\_\+floodline}!ili9341.\+h@{ili9341.\+h}}
\subsubsection[{\texorpdfstring{tft\+\_\+floodline(window $\ast$win, int16\+\_\+t x, int16\+\_\+t y, uint16\+\_\+t border, uint16\+\_\+t fill)}{tft_floodline(window *win, int16_t x, int16_t y, uint16_t border, uint16_t fill)}}]{\setlength{\rightskip}{0pt plus 5cm}int tft\+\_\+floodline (
\begin{DoxyParamCaption}
\item[{{\bf window} $\ast$}]{win, }
\item[{int16\+\_\+t}]{x, }
\item[{int16\+\_\+t}]{y, }
\item[{{\bf uint16\+\_\+t}}]{border, }
\item[{{\bf uint16\+\_\+t}}]{fill}
\end{DoxyParamCaption}
)}\hypertarget{ili9341_8h_a6223a118e376e361d8278428d1dac4fb}{}\label{ili9341_8h_a6223a118e376e361d8278428d1dac4fb}


Flood using line fill method. 

\begin{DoxySeeAlso}{See also}
\href{https://en.wikipedia.org/wiki/Flood_fill}{\tt https\+://en.\+wikipedia.\+org/wiki/\+Flood\+\_\+fill} F\+I\+X\+ME\+: not tested yet 
\end{DoxySeeAlso}

\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em win$\ast$} & window structure \\
\hline
\mbox{\tt in}  & {\em x} & X position to fill from \\
\hline
\mbox{\tt in}  & {\em y} & Y position to fill from \\
\hline
\mbox{\tt in}  & {\em border} & border color \\
\hline
\mbox{\tt in}  & {\em fill} & Fill color @ return true one success, 0 of stack overflow \\
\hline
\end{DoxyParams}


Definition at line 416 of file ili9341.\+c.

\index{ili9341.\+h@{ili9341.\+h}!tft\+\_\+font\+\_\+fixed@{tft\+\_\+font\+\_\+fixed}}
\index{tft\+\_\+font\+\_\+fixed@{tft\+\_\+font\+\_\+fixed}!ili9341.\+h@{ili9341.\+h}}
\subsubsection[{\texorpdfstring{tft\+\_\+font\+\_\+fixed(window $\ast$win)}{tft_font_fixed(window *win)}}]{\setlength{\rightskip}{0pt plus 5cm}{\bf M\+E\+M\+S\+P\+A\+CE} void tft\+\_\+font\+\_\+fixed (
\begin{DoxyParamCaption}
\item[{{\bf window} $\ast$}]{win}
\end{DoxyParamCaption}
)}\hypertarget{ili9341_8h_aea5f4bb41e9459b03f1a0df02b01b9fa}{}\label{ili9341_8h_aea5f4bb41e9459b03f1a0df02b01b9fa}
Only works if font is proportional type 
\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em win$\ast$} & window structure return\+: void \\
\hline
\end{DoxyParams}


Definition at line 1278 of file ili9341.\+c.



Referenced by user\+\_\+loop().

\index{ili9341.\+h@{ili9341.\+h}!tft\+\_\+font\+\_\+var@{tft\+\_\+font\+\_\+var}}
\index{tft\+\_\+font\+\_\+var@{tft\+\_\+font\+\_\+var}!ili9341.\+h@{ili9341.\+h}}
\subsubsection[{\texorpdfstring{tft\+\_\+font\+\_\+var(window $\ast$win)}{tft_font_var(window *win)}}]{\setlength{\rightskip}{0pt plus 5cm}{\bf M\+E\+M\+S\+P\+A\+CE} void tft\+\_\+font\+\_\+var (
\begin{DoxyParamCaption}
\item[{{\bf window} $\ast$}]{win}
\end{DoxyParamCaption}
)}\hypertarget{ili9341_8h_a6a3d78858315dd032ed3b31099867584}{}\label{ili9341_8h_a6a3d78858315dd032ed3b31099867584}


Set current font type to variable. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em win$\ast$} & window structure return\+: void \\
\hline
\end{DoxyParams}


Definition at line 1288 of file ili9341.\+c.



Referenced by test\+\_\+types().

\index{ili9341.\+h@{ili9341.\+h}!tft\+\_\+get\+\_\+font\+\_\+height@{tft\+\_\+get\+\_\+font\+\_\+height}}
\index{tft\+\_\+get\+\_\+font\+\_\+height@{tft\+\_\+get\+\_\+font\+\_\+height}!ili9341.\+h@{ili9341.\+h}}
\subsubsection[{\texorpdfstring{tft\+\_\+get\+\_\+font\+\_\+height(window $\ast$win)}{tft_get_font_height(window *win)}}]{\setlength{\rightskip}{0pt plus 5cm}int tft\+\_\+get\+\_\+font\+\_\+height (
\begin{DoxyParamCaption}
\item[{{\bf window} $\ast$}]{win}
\end{DoxyParamCaption}
)}\hypertarget{ili9341_8h_a616f9992d5ed309e96288a7e08b87bf3}{}\label{ili9341_8h_a616f9992d5ed309e96288a7e08b87bf3}


Get font height. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em win$\ast$} & window structure return\+: font Height or zero on error \\
\hline
\end{DoxyParams}


Definition at line 1296 of file ili9341.\+c.

\index{ili9341.\+h@{ili9341.\+h}!tft\+\_\+init@{tft\+\_\+init}}
\index{tft\+\_\+init@{tft\+\_\+init}!ili9341.\+h@{ili9341.\+h}}
\subsubsection[{\texorpdfstring{tft\+\_\+init(void)}{tft_init(void)}}]{\setlength{\rightskip}{0pt plus 5cm}{\bf M\+E\+M\+S\+P\+A\+CE} {\bf window}$\ast$ tft\+\_\+init (
\begin{DoxyParamCaption}
\item[{void}]{}
\end{DoxyParamCaption}
)}\hypertarget{ili9341_8h_a14e5cdfbb744c04570df508551f77add}{}\label{ili9341_8h_a14e5cdfbb744c04570df508551f77add}


Initialize T\+FT. 

\begin{DoxyReturn}{Returns}
diplay ID 9341 
\end{DoxyReturn}


Definition at line 178 of file ili9341\+\_\+hal.\+c.



Referenced by setup().

\index{ili9341.\+h@{ili9341.\+h}!tft\+\_\+invert\+Display@{tft\+\_\+invert\+Display}}
\index{tft\+\_\+invert\+Display@{tft\+\_\+invert\+Display}!ili9341.\+h@{ili9341.\+h}}
\subsubsection[{\texorpdfstring{tft\+\_\+invert\+Display(int flag)}{tft_invertDisplay(int flag)}}]{\setlength{\rightskip}{0pt plus 5cm}{\bf M\+E\+M\+S\+P\+A\+CE} void tft\+\_\+invert\+Display (
\begin{DoxyParamCaption}
\item[{int}]{flag}
\end{DoxyParamCaption}
)}\hypertarget{ili9341_8h_ac276806b0f70c3a69aaefa4a7937643b}{}\label{ili9341_8h_ac276806b0f70c3a69aaefa4a7937643b}


Invert the display. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em flag} & true or false \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
void 
\end{DoxyReturn}


Definition at line 1045 of file ili9341.\+c.

\index{ili9341.\+h@{ili9341.\+h}!tft\+\_\+pop\+\_\+xy@{tft\+\_\+pop\+\_\+xy}}
\index{tft\+\_\+pop\+\_\+xy@{tft\+\_\+pop\+\_\+xy}!ili9341.\+h@{ili9341.\+h}}
\subsubsection[{\texorpdfstring{tft\+\_\+pop\+\_\+xy(int16\+\_\+t $\ast$x, int16\+\_\+t $\ast$y)}{tft_pop_xy(int16_t *x, int16_t *y)}}]{\setlength{\rightskip}{0pt plus 5cm}int tft\+\_\+pop\+\_\+xy (
\begin{DoxyParamCaption}
\item[{int16\+\_\+t $\ast$}]{x, }
\item[{int16\+\_\+t $\ast$}]{y}
\end{DoxyParamCaption}
)}\hypertarget{ili9341_8h_a965b65255c70e4dfcdf3c80365bb1358}{}\label{ili9341_8h_a965b65255c70e4dfcdf3c80365bb1358}


point push 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em x} & X \\
\hline
\mbox{\tt in}  & {\em y} & Y @ return true if data exists, 0 of none \\
\hline
\end{DoxyParams}


Definition at line 397 of file ili9341.\+c.



Referenced by tft\+\_\+floodline().

\index{ili9341.\+h@{ili9341.\+h}!tft\+\_\+push\+\_\+xy@{tft\+\_\+push\+\_\+xy}}
\index{tft\+\_\+push\+\_\+xy@{tft\+\_\+push\+\_\+xy}!ili9341.\+h@{ili9341.\+h}}
\subsubsection[{\texorpdfstring{tft\+\_\+push\+\_\+xy(int16\+\_\+t x, int16\+\_\+t y)}{tft_push_xy(int16_t x, int16_t y)}}]{\setlength{\rightskip}{0pt plus 5cm}int tft\+\_\+push\+\_\+xy (
\begin{DoxyParamCaption}
\item[{int16\+\_\+t}]{x, }
\item[{int16\+\_\+t}]{y}
\end{DoxyParamCaption}
)}\hypertarget{ili9341_8h_abeeeab813dc4bbff2e42b292748a69f6}{}\label{ili9341_8h_abeeeab813dc4bbff2e42b292748a69f6}


point push 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em x} & X \\
\hline
\mbox{\tt in}  & {\em y} & Y @ return true on success, 0 of stack overflow \\
\hline
\end{DoxyParams}


Definition at line 380 of file ili9341.\+c.



Referenced by tft\+\_\+floodline().

\index{ili9341.\+h@{ili9341.\+h}!tft\+\_\+putch@{tft\+\_\+putch}}
\index{tft\+\_\+putch@{tft\+\_\+putch}!ili9341.\+h@{ili9341.\+h}}
\subsubsection[{\texorpdfstring{tft\+\_\+putch(window $\ast$win, int c)}{tft_putch(window *win, int c)}}]{\setlength{\rightskip}{0pt plus 5cm}void tft\+\_\+putch (
\begin{DoxyParamCaption}
\item[{{\bf window} $\ast$}]{win, }
\item[{int}]{c}
\end{DoxyParamCaption}
)}\hypertarget{ili9341_8h_afaf6907405d24bf529df5590f450d3cd}{}\label{ili9341_8h_afaf6907405d24bf529df5590f450d3cd}


put character in current winoow 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em win$\ast$} & window structure \\
\hline
\mbox{\tt in}  & {\em c} & character return\+: void \\
\hline
\end{DoxyParams}


Definition at line 1643 of file ili9341.\+c.



Referenced by \+\_\+putc\+\_\+win(), and \+\_\+putc\+\_\+win\+\_\+len().

\index{ili9341.\+h@{ili9341.\+h}!tft\+\_\+read\+Id@{tft\+\_\+read\+Id}}
\index{tft\+\_\+read\+Id@{tft\+\_\+read\+Id}!ili9341.\+h@{ili9341.\+h}}
\subsubsection[{\texorpdfstring{tft\+\_\+read\+Id(void)}{tft_readId(void)}}]{\setlength{\rightskip}{0pt plus 5cm}{\bf M\+E\+M\+S\+P\+A\+CE} {\bf uint32\+\_\+t} tft\+\_\+read\+Id (
\begin{DoxyParamCaption}
\item[{void}]{}
\end{DoxyParamCaption}
)}\hypertarget{ili9341_8h_a79545feceb8eca011c3f424b36035010}{}\label{ili9341_8h_a79545feceb8eca011c3f424b36035010}


Read I\+L\+I9341 device ID should be 9341 This does not work for really high S\+PI clock speeds Make sure that when called the clock speed in reduced. 

\begin{DoxySeeAlso}{See also}
\hyperlink{ili9341__hal_8c_a14e5cdfbb744c04570df508551f77add}{tft\+\_\+init} 
\end{DoxySeeAlso}
\begin{DoxyReturn}{Returns}
32bit value with D\+I\+P\+L\+AY ID 
\end{DoxyReturn}
Paramter 0 is unused See Read I\+D4 Command ( 0xd3 ) for a description of the parameters 

Definition at line 206 of file ili9341.\+c.



Referenced by tft\+\_\+init().

\index{ili9341.\+h@{ili9341.\+h}!tft\+\_\+read\+Pixel@{tft\+\_\+read\+Pixel}}
\index{tft\+\_\+read\+Pixel@{tft\+\_\+read\+Pixel}!ili9341.\+h@{ili9341.\+h}}
\subsubsection[{\texorpdfstring{tft\+\_\+read\+Pixel(window $\ast$win, int16\+\_\+t x, int16\+\_\+t y)}{tft_readPixel(window *win, int16_t x, int16_t y)}}]{\setlength{\rightskip}{0pt plus 5cm}{\bf uint16\+\_\+t} tft\+\_\+read\+Pixel (
\begin{DoxyParamCaption}
\item[{{\bf window} $\ast$}]{win, }
\item[{int16\+\_\+t}]{x, }
\item[{int16\+\_\+t}]{y}
\end{DoxyParamCaption}
)}\hypertarget{ili9341_8h_ae282613acd29016b23947b0b053170b5}{}\label{ili9341_8h_ae282613acd29016b23947b0b053170b5}


Read one pixel and return color in 1bit 565 R\+GB format We clip the window to the current view Note\+: Read Memory must be done in a continious write/read operation Chip select can not be deactivated for the transaction. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em win$\ast$} & window structure \\
\hline
\mbox{\tt in}  & {\em x} & X Start \\
\hline
\mbox{\tt in}  & {\em y} & Y Start \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
color in 565 format 
\end{DoxyReturn}


Definition at line 952 of file ili9341.\+c.



Referenced by tft\+\_\+flood(), tft\+\_\+floodline(), and user\+\_\+tests().

\index{ili9341.\+h@{ili9341.\+h}!tft\+\_\+read\+Rect@{tft\+\_\+read\+Rect}}
\index{tft\+\_\+read\+Rect@{tft\+\_\+read\+Rect}!ili9341.\+h@{ili9341.\+h}}
\subsubsection[{\texorpdfstring{tft\+\_\+read\+Rect(window $\ast$win, int16\+\_\+t x, int16\+\_\+t y, int16\+\_\+t w, int16\+\_\+t h, uint16\+\_\+t $\ast$color)}{tft_readRect(window *win, int16_t x, int16_t y, int16_t w, int16_t h, uint16_t *color)}}]{\setlength{\rightskip}{0pt plus 5cm}void tft\+\_\+read\+Rect (
\begin{DoxyParamCaption}
\item[{{\bf window} $\ast$}]{win, }
\item[{int16\+\_\+t}]{x, }
\item[{int16\+\_\+t}]{y, }
\item[{int16\+\_\+t}]{w, }
\item[{int16\+\_\+t}]{h, }
\item[{{\bf uint16\+\_\+t} $\ast$}]{color}
\end{DoxyParamCaption}
)}\hypertarget{ili9341_8h_a08bf5b6422229993b5d68e48c7b39619}{}\label{ili9341_8h_a08bf5b6422229993b5d68e48c7b39619}


Definition at line 837 of file ili9341.\+c.



Referenced by loop(), and tft\+\_\+\+Vscroll().

\index{ili9341.\+h@{ili9341.\+h}!tft\+\_\+read\+Register@{tft\+\_\+read\+Register}}
\index{tft\+\_\+read\+Register@{tft\+\_\+read\+Register}!ili9341.\+h@{ili9341.\+h}}
\subsubsection[{\texorpdfstring{tft\+\_\+read\+Register(uint8\+\_\+t command, uint8\+\_\+t parameter)}{tft_readRegister(uint8_t command, uint8_t parameter)}}]{\setlength{\rightskip}{0pt plus 5cm}{\bf M\+E\+M\+S\+P\+A\+CE} {\bf uint32\+\_\+t} tft\+\_\+read\+Register (
\begin{DoxyParamCaption}
\item[{{\bf uint8\+\_\+t}}]{command, }
\item[{{\bf uint8\+\_\+t}}]{parameter}
\end{DoxyParamCaption}
)}\hypertarget{ili9341_8h_a3cbe26ff6bbd20f42551fcfa12351142}{}\label{ili9341_8h_a3cbe26ff6bbd20f42551fcfa12351142}


==================================== 

====================================================================== S\+P\+I\+Read parameters on S\+PI bus I\+L\+I9341 displays For those displays that do not have the E\+X\+TC pin asserted. This undocumented command overrides the restriction for reading command parameters. Notes\+: S\+PI configurations See M\+:\mbox{[}0-\/3\mbox{]} control bits in I\+L\+I9341 documenation
\begin{DoxyItemize}
\item Refer to interface I and II modes. Most I\+L\+I9341 displays are using interface I, (Rather the interface II mode) 
\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em command} & command whose parameters we want to read \\
\hline
\mbox{\tt in}  & {\em parameter} & parameter number \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
16bit value 
\end{DoxyReturn}

\end{DoxyItemize}

Definition at line 166 of file ili9341.\+c.



Referenced by tft\+\_\+read\+Id().

\index{ili9341.\+h@{ili9341.\+h}!tft\+\_\+rel\+\_\+window@{tft\+\_\+rel\+\_\+window}}
\index{tft\+\_\+rel\+\_\+window@{tft\+\_\+rel\+\_\+window}!ili9341.\+h@{ili9341.\+h}}
\subsubsection[{\texorpdfstring{tft\+\_\+rel\+\_\+window(window $\ast$win, int16\+\_\+t x, int16\+\_\+t y, int16\+\_\+t w, int16\+\_\+t h)}{tft_rel_window(window *win, int16_t x, int16_t y, int16_t w, int16_t h)}}]{\setlength{\rightskip}{0pt plus 5cm}{\bf int32\+\_\+t} tft\+\_\+rel\+\_\+window (
\begin{DoxyParamCaption}
\item[{{\bf window} $\ast$}]{win, }
\item[{int16\+\_\+t}]{x, }
\item[{int16\+\_\+t}]{y, }
\item[{int16\+\_\+t}]{w, }
\item[{int16\+\_\+t}]{h}
\end{DoxyParamCaption}
)}\hypertarget{ili9341_8h_a26f9b4da8c98bb40a55da447874a849c}{}\label{ili9341_8h_a26f9b4da8c98bb40a55da447874a849c}


Set the ili9341 working window by relative position and size Note\+: Function clips x,y,w,y. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em win$\ast$} & window structure \\
\hline
\mbox{\tt in}  & {\em x} & Starting X offset \\
\hline
\mbox{\tt in}  & {\em y} & Starting Y offset \\
\hline
\mbox{\tt in}  & {\em w} & Width \\
\hline
\mbox{\tt in}  & {\em h} & Height \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
bytes w $\ast$ h after clipping, 0 on error 
\end{DoxyReturn}


Definition at line 140 of file ili9341.\+c.



Referenced by tft\+\_\+bit\+\_\+blit(), tft\+\_\+draw\+Pixel(), tft\+\_\+\+Fill\+Poly\+Line(), tft\+\_\+fill\+Rect\+W\+H(), tft\+\_\+read\+Pixel(), tft\+\_\+read\+Rect(), and tft\+\_\+write\+Rect().

\index{ili9341.\+h@{ili9341.\+h}!tft\+\_\+reset\+\_\+disable@{tft\+\_\+reset\+\_\+disable}}
\index{tft\+\_\+reset\+\_\+disable@{tft\+\_\+reset\+\_\+disable}!ili9341.\+h@{ili9341.\+h}}
\subsubsection[{\texorpdfstring{tft\+\_\+reset\+\_\+disable(void)}{tft_reset_disable(void)}}]{\setlength{\rightskip}{0pt plus 5cm}void tft\+\_\+reset\+\_\+disable (
\begin{DoxyParamCaption}
\item[{void}]{}
\end{DoxyParamCaption}
)}\hypertarget{ili9341_8h_adab2982713fd22c9046d2a067781e282}{}\label{ili9341_8h_adab2982713fd22c9046d2a067781e282}


disnable I\+L\+I9341 reset return\+: void 



Definition at line 120 of file ili9341\+\_\+hal.\+c.



Referenced by tft\+\_\+init().

\index{ili9341.\+h@{ili9341.\+h}!tft\+\_\+reset\+\_\+enable@{tft\+\_\+reset\+\_\+enable}}
\index{tft\+\_\+reset\+\_\+enable@{tft\+\_\+reset\+\_\+enable}!ili9341.\+h@{ili9341.\+h}}
\subsubsection[{\texorpdfstring{tft\+\_\+reset\+\_\+enable(void)}{tft_reset_enable(void)}}]{\setlength{\rightskip}{0pt plus 5cm}void tft\+\_\+reset\+\_\+enable (
\begin{DoxyParamCaption}
\item[{void}]{}
\end{DoxyParamCaption}
)}\hypertarget{ili9341_8h_ad0b8f3a939e2b4eb04910d938b61f95c}{}\label{ili9341_8h_ad0b8f3a939e2b4eb04910d938b61f95c}


enable I\+L\+I9341 reset return\+: void 



Definition at line 103 of file ili9341\+\_\+hal.\+c.



Referenced by tft\+\_\+init().

\index{ili9341.\+h@{ili9341.\+h}!tft\+\_\+reset\+\_\+init@{tft\+\_\+reset\+\_\+init}}
\index{tft\+\_\+reset\+\_\+init@{tft\+\_\+reset\+\_\+init}!ili9341.\+h@{ili9341.\+h}}
\subsubsection[{\texorpdfstring{tft\+\_\+reset\+\_\+init(void)}{tft_reset_init(void)}}]{\setlength{\rightskip}{0pt plus 5cm}void tft\+\_\+reset\+\_\+init (
\begin{DoxyParamCaption}
\item[{void}]{}
\end{DoxyParamCaption}
)}\hypertarget{ili9341_8h_a54cf2a7ed961e6a81c212c06b2580d16}{}\label{ili9341_8h_a54cf2a7ed961e6a81c212c06b2580d16}


Initialize I\+L\+I9341 reset G\+P\+IO return\+: void. 



Definition at line 94 of file ili9341\+\_\+hal.\+c.



Referenced by tft\+\_\+init().

\index{ili9341.\+h@{ili9341.\+h}!tft\+\_\+set\+\_\+font@{tft\+\_\+set\+\_\+font}}
\index{tft\+\_\+set\+\_\+font@{tft\+\_\+set\+\_\+font}!ili9341.\+h@{ili9341.\+h}}
\subsubsection[{\texorpdfstring{tft\+\_\+set\+\_\+font(window $\ast$win, uint16\+\_\+t index)}{tft_set_font(window *win, uint16_t index)}}]{\setlength{\rightskip}{0pt plus 5cm}{\bf M\+E\+M\+S\+P\+A\+CE} void tft\+\_\+set\+\_\+font (
\begin{DoxyParamCaption}
\item[{{\bf window} $\ast$}]{win, }
\item[{{\bf uint16\+\_\+t}}]{index}
\end{DoxyParamCaption}
)}\hypertarget{ili9341_8h_aa530634bb661856089c9bc7d78f8805f}{}\label{ili9341_8h_aa530634bb661856089c9bc7d78f8805f}


Set current font size (per current rotation) 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em win$\ast$} & window structure \\
\hline
\mbox{\tt in}  & {\em index} & font index (for array of fonts) return\+: void \\
\hline
\end{DoxyParams}


Definition at line 1267 of file ili9341.\+c.



Referenced by test\+\_\+types(), and user\+\_\+loop().

\index{ili9341.\+h@{ili9341.\+h}!tft\+\_\+set\+\_\+textpos@{tft\+\_\+set\+\_\+textpos}}
\index{tft\+\_\+set\+\_\+textpos@{tft\+\_\+set\+\_\+textpos}!ili9341.\+h@{ili9341.\+h}}
\subsubsection[{\texorpdfstring{tft\+\_\+set\+\_\+textpos(window $\ast$win, int16\+\_\+t x, int16\+\_\+t y)}{tft_set_textpos(window *win, int16_t x, int16_t y)}}]{\setlength{\rightskip}{0pt plus 5cm}{\bf M\+E\+M\+S\+P\+A\+CE} void tft\+\_\+set\+\_\+textpos (
\begin{DoxyParamCaption}
\item[{{\bf window} $\ast$}]{win, }
\item[{int16\+\_\+t}]{x, }
\item[{int16\+\_\+t}]{y}
\end{DoxyParamCaption}
)}\hypertarget{ili9341_8h_a2eb6ca3fa55bfe5ecf510bc4b25916fc}{}\label{ili9341_8h_a2eb6ca3fa55bfe5ecf510bc4b25916fc}


Set current window text pointer in characters (per current rotation) -\/ overall font bounding box. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em win$\ast$} & window structure \\
\hline
\mbox{\tt in}  & {\em x} & x offset \\
\hline
\mbox{\tt in}  & {\em y} & y oofset return\+: void \\
\hline
\end{DoxyParams}


Definition at line 1254 of file ili9341.\+c.



Referenced by test\+\_\+types(), and user\+\_\+loop().

\index{ili9341.\+h@{ili9341.\+h}!tft\+\_\+setpos@{tft\+\_\+setpos}}
\index{tft\+\_\+setpos@{tft\+\_\+setpos}!ili9341.\+h@{ili9341.\+h}}
\subsubsection[{\texorpdfstring{tft\+\_\+setpos(window $\ast$win, int16\+\_\+t x, int16\+\_\+t y)}{tft_setpos(window *win, int16_t x, int16_t y)}}]{\setlength{\rightskip}{0pt plus 5cm}{\bf M\+E\+M\+S\+P\+A\+CE} void tft\+\_\+setpos (
\begin{DoxyParamCaption}
\item[{{\bf window} $\ast$}]{win, }
\item[{int16\+\_\+t}]{x, }
\item[{int16\+\_\+t}]{y}
\end{DoxyParamCaption}
)}\hypertarget{ili9341_8h_adaf98866e7cbd787fde096143d394699}{}\label{ili9341_8h_adaf98866e7cbd787fde096143d394699}


Set current window text pointer in pixels (per current rotation) 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em win$\ast$} & window structure \\
\hline
\mbox{\tt in}  & {\em x} & x offset \\
\hline
\mbox{\tt in}  & {\em y} & y oofset return\+: void \\
\hline
\end{DoxyParams}


Definition at line 1241 of file ili9341.\+c.

\index{ili9341.\+h@{ili9341.\+h}!tft\+\_\+set\+Rotation@{tft\+\_\+set\+Rotation}}
\index{tft\+\_\+set\+Rotation@{tft\+\_\+set\+Rotation}!ili9341.\+h@{ili9341.\+h}}
\subsubsection[{\texorpdfstring{tft\+\_\+set\+Rotation(uint8\+\_\+t m)}{tft_setRotation(uint8_t m)}}]{\setlength{\rightskip}{0pt plus 5cm}{\bf M\+E\+M\+S\+P\+A\+CE} void tft\+\_\+set\+Rotation (
\begin{DoxyParamCaption}
\item[{{\bf uint8\+\_\+t}}]{m}
\end{DoxyParamCaption}
)}\hypertarget{ili9341_8h_a4c1271aab64c58f75e6de6471f430bbe}{}\label{ili9341_8h_a4c1271aab64c58f75e6de6471f430bbe}


Set Display rotation, applies to the master window only Set hardware display rotation and memory fill option bits Update software display limits F\+I\+X\+ME Work in progress. 


\begin{DoxyItemize}
\item do we want to handle exchanging min/max values -\/ rather then set them ? \begin{DoxyReturn}{Returns}
void 
\end{DoxyReturn}

\end{DoxyItemize}

Definition at line 982 of file ili9341.\+c.



Referenced by test\+\_\+types(), tft\+\_\+init(), and user\+\_\+tests().

\index{ili9341.\+h@{ili9341.\+h}!tft\+\_\+set\+Text\+Color@{tft\+\_\+set\+Text\+Color}}
\index{tft\+\_\+set\+Text\+Color@{tft\+\_\+set\+Text\+Color}!ili9341.\+h@{ili9341.\+h}}
\subsubsection[{\texorpdfstring{tft\+\_\+set\+Text\+Color(window $\ast$win, uint16\+\_\+t fg, uint16\+\_\+t bg)}{tft_setTextColor(window *win, uint16_t fg, uint16_t bg)}}]{\setlength{\rightskip}{0pt plus 5cm}{\bf M\+E\+M\+S\+P\+A\+CE} void tft\+\_\+set\+Text\+Color (
\begin{DoxyParamCaption}
\item[{{\bf window} $\ast$}]{win, }
\item[{{\bf uint16\+\_\+t}}]{fg, }
\item[{{\bf uint16\+\_\+t}}]{bg}
\end{DoxyParamCaption}
)}\hypertarget{ili9341_8h_aeedc758e5bf61e7ffb28d4a85de854e6}{}\label{ili9341_8h_aeedc758e5bf61e7ffb28d4a85de854e6}


==================================== 

Set text forground and background color 
\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em win$\ast$} & window structure \\
\hline
\mbox{\tt in}  & {\em fg} & forground color \\
\hline
\mbox{\tt in}  & {\em bg} & background color \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
void 
\end{DoxyReturn}


Definition at line 1228 of file ili9341.\+c.



Referenced by test\+\_\+types().

\index{ili9341.\+h@{ili9341.\+h}!tft\+\_\+spi\+\_\+begin@{tft\+\_\+spi\+\_\+begin}}
\index{tft\+\_\+spi\+\_\+begin@{tft\+\_\+spi\+\_\+begin}!ili9341.\+h@{ili9341.\+h}}
\subsubsection[{\texorpdfstring{tft\+\_\+spi\+\_\+begin(void)}{tft_spi_begin(void)}}]{\setlength{\rightskip}{0pt plus 5cm}void tft\+\_\+spi\+\_\+begin (
\begin{DoxyParamCaption}
\item[{void}]{}
\end{DoxyParamCaption}
)}\hypertarget{ili9341_8h_ace16843deffffe3332a7e16f14e1c4f7}{}\label{ili9341_8h_ace16843deffffe3332a7e16f14e1c4f7}


Obtain S\+PI bus for T\+FT display, assert chip select return\+: void. 



Definition at line 80 of file ili9341\+\_\+hal.\+c.



Referenced by tft\+\_\+bit\+\_\+blit(), tft\+\_\+\+Cmd\+\_\+\+Data\+\_\+\+T\+X(), tft\+\_\+\+Fill\+Poly\+Line(), tft\+\_\+fill\+Rect\+W\+H(), tft\+\_\+invert\+Display(), tft\+\_\+read\+Pixel(), tft\+\_\+read\+Rect(), tft\+\_\+read\+Register(), and tft\+\_\+write\+Rect().

\index{ili9341.\+h@{ili9341.\+h}!tft\+\_\+spi\+\_\+end@{tft\+\_\+spi\+\_\+end}}
\index{tft\+\_\+spi\+\_\+end@{tft\+\_\+spi\+\_\+end}!ili9341.\+h@{ili9341.\+h}}
\subsubsection[{\texorpdfstring{tft\+\_\+spi\+\_\+end(void)}{tft_spi_end(void)}}]{\setlength{\rightskip}{0pt plus 5cm}void tft\+\_\+spi\+\_\+end (
\begin{DoxyParamCaption}
\item[{void}]{}
\end{DoxyParamCaption}
)}\hypertarget{ili9341_8h_a6141eafeb5d38b1a5c5061ce0923a650}{}\label{ili9341_8h_a6141eafeb5d38b1a5c5061ce0923a650}


Release S\+PI bus from T\+FT display, deassert chip select return\+: void. 



Definition at line 87 of file ili9341\+\_\+hal.\+c.



Referenced by tft\+\_\+bit\+\_\+blit(), tft\+\_\+\+Cmd\+\_\+\+Data\+\_\+\+T\+X(), tft\+\_\+\+Fill\+Poly\+Line(), tft\+\_\+fill\+Rect\+W\+H(), tft\+\_\+invert\+Display(), tft\+\_\+read\+Pixel(), tft\+\_\+read\+Rect(), tft\+\_\+read\+Register(), and tft\+\_\+write\+Rect().

\index{ili9341.\+h@{ili9341.\+h}!tft\+\_\+spi\+\_\+init@{tft\+\_\+spi\+\_\+init}}
\index{tft\+\_\+spi\+\_\+init@{tft\+\_\+spi\+\_\+init}!ili9341.\+h@{ili9341.\+h}}
\subsubsection[{\texorpdfstring{tft\+\_\+spi\+\_\+init(uint32\+\_\+t prescale)}{tft_spi_init(uint32_t prescale)}}]{\setlength{\rightskip}{0pt plus 5cm}void tft\+\_\+spi\+\_\+init (
\begin{DoxyParamCaption}
\item[{{\bf uint32\+\_\+t}}]{prescale}
\end{DoxyParamCaption}
)}\hypertarget{ili9341_8h_ae8a7e08911796339320a3cc3beaea03a}{}\label{ili9341_8h_ae8a7e08911796339320a3cc3beaea03a}
\index{ili9341.\+h@{ili9341.\+h}!tft\+\_\+spi\+\_\+\+RX@{tft\+\_\+spi\+\_\+\+RX}}
\index{tft\+\_\+spi\+\_\+\+RX@{tft\+\_\+spi\+\_\+\+RX}!ili9341.\+h@{ili9341.\+h}}
\subsubsection[{\texorpdfstring{tft\+\_\+spi\+\_\+\+R\+X(uint8\+\_\+t $\ast$data, int bytes, uint8\+\_\+t command)}{tft_spi_RX(uint8_t *data, int bytes, uint8_t command)}}]{\setlength{\rightskip}{0pt plus 5cm}void tft\+\_\+spi\+\_\+\+RX (
\begin{DoxyParamCaption}
\item[{{\bf uint8\+\_\+t} $\ast$}]{data, }
\item[{int}]{bytes, }
\item[{{\bf uint8\+\_\+t}}]{command}
\end{DoxyParamCaption}
)}\hypertarget{ili9341_8h_aad54db2d053d783c70669fdbd414fda1}{}\label{ili9341_8h_aad54db2d053d783c70669fdbd414fda1}


read 8 bit data array 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em $\ast$data} & data buffer to send \\
\hline
\mbox{\tt in}  & {\em bytes} & data buffer size \\
\hline
\mbox{\tt in}  & {\em command} & 1 = command, 0 = data return\+: void \\
\hline
\end{DoxyParams}


Definition at line 165 of file ili9341\+\_\+hal.\+c.



Referenced by tft\+\_\+\+Fill\+Poly\+Line(), tft\+\_\+read\+Pixel(), and tft\+\_\+read\+Rect().

\index{ili9341.\+h@{ili9341.\+h}!tft\+\_\+spi\+\_\+\+TX@{tft\+\_\+spi\+\_\+\+TX}}
\index{tft\+\_\+spi\+\_\+\+TX@{tft\+\_\+spi\+\_\+\+TX}!ili9341.\+h@{ili9341.\+h}}
\subsubsection[{\texorpdfstring{tft\+\_\+spi\+\_\+\+T\+X(uint8\+\_\+t $\ast$data, int bytes, uint8\+\_\+t command)}{tft_spi_TX(uint8_t *data, int bytes, uint8_t command)}}]{\setlength{\rightskip}{0pt plus 5cm}void tft\+\_\+spi\+\_\+\+TX (
\begin{DoxyParamCaption}
\item[{{\bf uint8\+\_\+t} $\ast$}]{data, }
\item[{int}]{bytes, }
\item[{{\bf uint8\+\_\+t}}]{command}
\end{DoxyParamCaption}
)}\hypertarget{ili9341_8h_aa975fa5ad6bb7e52356d9d66ac733196}{}\label{ili9341_8h_aa975fa5ad6bb7e52356d9d66ac733196}


Transmit 8 bit data array. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em $\ast$data} & data buffer to send \\
\hline
\mbox{\tt in}  & {\em bytes} & data buffer size \\
\hline
\mbox{\tt in}  & {\em command} & 1 = command, 0 = data return\+: void \\
\hline
\end{DoxyParams}


Definition at line 134 of file ili9341\+\_\+hal.\+c.



Referenced by tft\+\_\+bit\+\_\+blit(), tft\+\_\+\+Cmd(), tft\+\_\+\+Cmd\+\_\+\+Data\+\_\+\+T\+X(), tft\+\_\+fill\+Rect\+W\+H(), and tft\+\_\+write\+Rect().

\index{ili9341.\+h@{ili9341.\+h}!tft\+\_\+spi\+\_\+\+T\+X\+RX@{tft\+\_\+spi\+\_\+\+T\+X\+RX}}
\index{tft\+\_\+spi\+\_\+\+T\+X\+RX@{tft\+\_\+spi\+\_\+\+T\+X\+RX}!ili9341.\+h@{ili9341.\+h}}
\subsubsection[{\texorpdfstring{tft\+\_\+spi\+\_\+\+T\+X\+R\+X(uint8\+\_\+t $\ast$data, int bytes, uint8\+\_\+t command)}{tft_spi_TXRX(uint8_t *data, int bytes, uint8_t command)}}]{\setlength{\rightskip}{0pt plus 5cm}void tft\+\_\+spi\+\_\+\+T\+X\+RX (
\begin{DoxyParamCaption}
\item[{{\bf uint8\+\_\+t} $\ast$}]{data, }
\item[{int}]{bytes, }
\item[{{\bf uint8\+\_\+t}}]{command}
\end{DoxyParamCaption}
)}\hypertarget{ili9341_8h_ad2eda0e245536550e1a28da1d652629e}{}\label{ili9341_8h_ad2eda0e245536550e1a28da1d652629e}


Transmit and read 8 bit data array. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em $\ast$data} & data buffer to send \\
\hline
\mbox{\tt in}  & {\em bytes} & data buffer size \\
\hline
\mbox{\tt in}  & {\em command} & 1 = command, 0 = data return\+: void \\
\hline
\end{DoxyParams}


Definition at line 149 of file ili9341\+\_\+hal.\+c.



Referenced by tft\+\_\+\+Data().

\index{ili9341.\+h@{ili9341.\+h}!tft\+\_\+\+Vscroll@{tft\+\_\+\+Vscroll}}
\index{tft\+\_\+\+Vscroll@{tft\+\_\+\+Vscroll}!ili9341.\+h@{ili9341.\+h}}
\subsubsection[{\texorpdfstring{tft\+\_\+\+Vscroll(window $\ast$win, int dir)}{tft_Vscroll(window *win, int dir)}}]{\setlength{\rightskip}{0pt plus 5cm}void tft\+\_\+\+Vscroll (
\begin{DoxyParamCaption}
\item[{{\bf window} $\ast$}]{win, }
\item[{int}]{dir}
\end{DoxyParamCaption}
)}\hypertarget{ili9341_8h_a98e0ecaf3fc85ced7c0b7a2a504df02f}{}\label{ili9341_8h_a98e0ecaf3fc85ced7c0b7a2a504df02f}


Scroll window up by dir lines We start at the top of the window and move down. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em win$\ast$} & window structure \\
\hline
\mbox{\tt in}  & {\em dir} & direction and count T\+O\+DO +/-\/ scroll direction T\+O\+DO +/-\/ Horizontal scroll functions \\
\hline
\end{DoxyParams}


Definition at line 903 of file ili9341.\+c.



Referenced by tft\+\_\+draw\+Char().

\index{ili9341.\+h@{ili9341.\+h}!tft\+\_\+window\+\_\+clip@{tft\+\_\+window\+\_\+clip}}
\index{tft\+\_\+window\+\_\+clip@{tft\+\_\+window\+\_\+clip}!ili9341.\+h@{ili9341.\+h}}
\subsubsection[{\texorpdfstring{tft\+\_\+window\+\_\+clip(window $\ast$win)}{tft_window_clip(window *win)}}]{\setlength{\rightskip}{0pt plus 5cm}{\bf M\+E\+M\+S\+P\+A\+CE} int tft\+\_\+window\+\_\+clip (
\begin{DoxyParamCaption}
\item[{{\bf window} $\ast$}]{win}
\end{DoxyParamCaption}
)}\hypertarget{ili9341_8h_af543a94ab615526f81039617a49ac6e5}{}\label{ili9341_8h_af543a94ab615526f81039617a49ac6e5}


Clip window structure to T\+FT limits. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em win$\ast$} & window structure \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 -\/ or -\/ count of clipped values F\+I\+X\+ME check negitive offsets, etc 
\end{DoxyReturn}


Definition at line 1059 of file ili9341.\+c.

\index{ili9341.\+h@{ili9341.\+h}!tft\+\_\+window\+\_\+clip\+\_\+args@{tft\+\_\+window\+\_\+clip\+\_\+args}}
\index{tft\+\_\+window\+\_\+clip\+\_\+args@{tft\+\_\+window\+\_\+clip\+\_\+args}!ili9341.\+h@{ili9341.\+h}}
\subsubsection[{\texorpdfstring{tft\+\_\+window\+\_\+clip\+\_\+args(window $\ast$win, int16\+\_\+t $\ast$x, int16\+\_\+t $\ast$y, int16\+\_\+t $\ast$w, int16\+\_\+t $\ast$h)}{tft_window_clip_args(window *win, int16_t *x, int16_t *y, int16_t *w, int16_t *h)}}]{\setlength{\rightskip}{0pt plus 5cm}{\bf M\+E\+M\+S\+P\+A\+CE} int tft\+\_\+window\+\_\+clip\+\_\+args (
\begin{DoxyParamCaption}
\item[{{\bf window} $\ast$}]{win, }
\item[{int16\+\_\+t $\ast$}]{x, }
\item[{int16\+\_\+t $\ast$}]{y, }
\item[{int16\+\_\+t $\ast$}]{w, }
\item[{int16\+\_\+t $\ast$}]{h}
\end{DoxyParamCaption}
)}\hypertarget{ili9341_8h_a04d77513a2a6464617b3effa276196ae}{}\label{ili9341_8h_a04d77513a2a6464617b3effa276196ae}


clip arguments to window limits Arguments position x,y width w and height h to be clipped 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em $\ast$win} & window structure we will use to clip arguments to. \\
\hline
\mbox{\tt in}  & {\em $\ast$x} & X argument offset \\
\hline
\mbox{\tt in}  & {\em $\ast$y} & Y argument offset \\
\hline
\mbox{\tt in}  & {\em $\ast$w} & W argument width \\
\hline
\mbox{\tt in}  & {\em $\ast$h} & H argument height \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
void F\+I\+X\+ME check negitive offsets, etc 
\end{DoxyReturn}


Definition at line 1145 of file ili9341.\+c.



Referenced by tft\+\_\+abs\+\_\+window(), tft\+\_\+bit\+\_\+blit(), and tft\+\_\+window\+\_\+init().

\index{ili9341.\+h@{ili9341.\+h}!tft\+\_\+window\+\_\+init@{tft\+\_\+window\+\_\+init}}
\index{tft\+\_\+window\+\_\+init@{tft\+\_\+window\+\_\+init}!ili9341.\+h@{ili9341.\+h}}
\subsubsection[{\texorpdfstring{tft\+\_\+window\+\_\+init(window $\ast$win, int16\+\_\+t x, int16\+\_\+t y, int16\+\_\+t w, int16\+\_\+t h)}{tft_window_init(window *win, int16_t x, int16_t y, int16_t w, int16_t h)}}]{\setlength{\rightskip}{0pt plus 5cm}{\bf M\+E\+M\+S\+P\+A\+CE} void tft\+\_\+window\+\_\+init (
\begin{DoxyParamCaption}
\item[{{\bf window} $\ast$}]{win, }
\item[{int16\+\_\+t}]{x, }
\item[{int16\+\_\+t}]{y, }
\item[{int16\+\_\+t}]{w, }
\item[{int16\+\_\+t}]{h}
\end{DoxyParamCaption}
)}\hypertarget{ili9341_8h_a5a31e1132605d6a60b66c4e969b56b37}{}\label{ili9341_8h_a5a31e1132605d6a60b66c4e969b56b37}


Initialize window structure we default values F\+I\+X\+ME check x+w, y+h absolute limits against T\+FT limuts. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em win$\ast$} & window structure \\
\hline
\mbox{\tt in}  & {\em x} & X offset to window start -\/ absolute \\
\hline
\mbox{\tt in}  & {\em y} & Y offset to window start -\/ absolute \\
\hline
\mbox{\tt in}  & {\em w} & Window width \\
\hline
\mbox{\tt in}  & {\em h} & Window Height \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
void 
\end{DoxyReturn}


Definition at line 1198 of file ili9341.\+c.



Referenced by test\+\_\+types(), and tft\+\_\+init().

\index{ili9341.\+h@{ili9341.\+h}!tft\+\_\+write\+Rect@{tft\+\_\+write\+Rect}}
\index{tft\+\_\+write\+Rect@{tft\+\_\+write\+Rect}!ili9341.\+h@{ili9341.\+h}}
\subsubsection[{\texorpdfstring{tft\+\_\+write\+Rect(window $\ast$win, int16\+\_\+t x, int16\+\_\+t y, int16\+\_\+t w, int16\+\_\+t h, uint16\+\_\+t $\ast$color)}{tft_writeRect(window *win, int16_t x, int16_t y, int16_t w, int16_t h, uint16_t *color)}}]{\setlength{\rightskip}{0pt plus 5cm}void tft\+\_\+write\+Rect (
\begin{DoxyParamCaption}
\item[{{\bf window} $\ast$}]{win, }
\item[{int16\+\_\+t}]{x, }
\item[{int16\+\_\+t}]{y, }
\item[{int16\+\_\+t}]{w, }
\item[{int16\+\_\+t}]{h, }
\item[{{\bf uint16\+\_\+t} $\ast$}]{color}
\end{DoxyParamCaption}
)}\hypertarget{ili9341_8h_a2e70141c8de6a4199f9fc39d8cfc758c}{}\label{ili9341_8h_a2e70141c8de6a4199f9fc39d8cfc758c}


Write a rectangle pixel array. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em win$\ast$} & window structure \\
\hline
\mbox{\tt in}  & {\em x} & X offset \\
\hline
\mbox{\tt in}  & {\em y} & Y offset \\
\hline
\mbox{\tt in}  & {\em w} & Width \\
\hline
\mbox{\tt in}  & {\em h} & Height \\
\hline
\mbox{\tt in}  & {\em $\ast$color} & pixel array in 565 format \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
void 
\end{DoxyReturn}


Definition at line 745 of file ili9341.\+c.



Referenced by tft\+\_\+draw\+Bitmap(), and tft\+\_\+\+Vscroll().

